0

GCC gives this error no matter what I do. I have uninstalled gcc and all libraries, done a reinstall and reboot. gcc was working last night, and when I open my laptop today it tries looking for intellij files.

And here's the error I get when I run make. Note: This happens with every source file I try to compile. Just started today. It was working yesterday.

gcc -c war.c 
Error: Could not find or load main class com.intellij.idea.Main

https://github.com/ahester57/WAR

which gcc gives me /usr/bin/gcc

which as gives me /usr/bin/as

I've tried /usr/bin/gcc -c war.c and it gives the save Error (having to do with intellij). I don't even have intellij installed.

Just looking for any insight, might reinstall OS if nobody else has experienced this issue. Using vim and bash on Ubuntu 17.04. 17.10 is right around the corner.

$ gcc -v -Wall -g ptr.c -o ptr
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) 
COLLECT_GCC_OPTIONS='-v' '-Wall' '-g' '-o' 'ptr' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/6/cc1 -quiet -v -imultiarch x86_64-linux-gnu ptr.c -quiet -dumpbase ptr.c -mtune=generic -march=x86-64 -auxbase ptr -g -Wall -version -fstack-protector-strong -Wformat-security -o /tmp/ccjR19rz.s
GNU C11 (Ubuntu 6.3.0-12ubuntu2) version 6.3.0 20170406 (x86_64-linux-gnu)
    compiled by GNU C version 6.3.0 20170406, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/6/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/6/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
GNU C11 (Ubuntu 6.3.0-12ubuntu2) version 6.3.0 20170406 (x86_64-linux-gnu)
    compiled by GNU C version 6.3.0 20170406, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 5a80a4e17a9c5c8f646e6b274db1ec27
COLLECT_GCC_OPTIONS='-v' '-Wall' '-g' '-o' 'ptr' '-mtune=generic' '-march=x86-64'
 as -v --64 -o /tmp/cc267OI7.o /tmp/ccjR19rz.s
Error: Could not find or load main class com.intellij.idea.Main

Thanks to Basile, got gcc working again.

Solution:

apt-get reinstall gcc gcc-multilib
apt-get reinstall binutils
Austin Hester
  • 13
  • 1
  • 4

2 Answers2

0

Type which gcc and which as (I won't be surprised the output would be weird, should be /usr/bin/gcc and /usr/bin/as) then both gcc -v and gcc --version; correct (probably in ~/.bashrc) the setting of your $PATH (so use echo $PATH to find out what it is) and use $(CC) in your Makefile. BTW, you don't need the lines with gcc in your Makefile, because make has built-in rules (type make -p to find them)

If that is not enough (it should be) add an explicit

CC= /usr/bin/gcc

in your Makefile which is quite buggy.

Take time to read the documentation of make, then rewrite your Makefile entirely.

See this and that answers (they contain relevant examples)

You should compile with all warnings and debug info, probably by having

CFLAGS+= -Wall -Wextra -g

Read also the documentation of GCC. You probably don't need -w and you are using -c incorrectly (it is skipping the linking step and just compiling).

BTW, order of arguments to gcc matters a lot (and you get it wrong).

I have uninstalled gcc and all libraries, done a reinstall and reboot. gcc was working last night, and when I open my laptop today it tries looking for intellij files.

PS. Perhaps your /usr/bin/gcc has been spoiled (or your as used by gcc, try reinstalling binutils package) and probably your system is corrupted, you need to fix that first to be able to edit a simple helloworld.c program then do (in a fresh terminal running a shell like bash or zsh) a gcc -v -Wall -g helloworld.c -o helloworldprogram then run ./helloworldprogram. Once that is well, read documentation of make, documentation of GCC and start your project again.

appendix

In a comment you mentioned https://github.com/ahester57/WAR here is a better Makefile for commit 7ed7133e09c7bb2af:

 # Makefile improved by Basile Starynkevitch

 CC= gcc
 CFLAGS= -Wall -g
 LDLIBS= -lm
 SOURCES= cards.c war.c
 # or perhaps SOURCES= $(wildcard *.c)

 OBJECTS= $(patsubst %.c,%.o,$(SOURCES))

 .PHONY: all clean

 all: war

 war: $(OBJECTS)

 $(OBJECTS): cards.h

 clean:
    $(RM) $(OBJECTS) war *~
Basile Starynkevitch
  • 223,805
  • 18
  • 296
  • 547
  • I'm using lots of unicode, so I get a wall of warnings otherwise. This is just for a silly war (card game) simulation. However, gcc does not work at all. I've tried /usr/bin/gcc -c war.c and it give the save Error (having to do with intellij). I don't even have intellij installed. – Austin Hester Sep 30 '17 at 05:56
  • I strongly recommend you to take a few days to read documentation – Basile Starynkevitch Sep 30 '17 at 05:59
  • You're right, I haven't been using make for too long. But my current problem is getting gcc and g++ working. – Austin Hester Sep 30 '17 at 06:02
  • But that is a very different question - it is a sysadmin one -, and it probably should go (with a *lot* more details, several paragraphs of them) elsewhere, perhaps https://unix.stackexchange.com/ or https://askubuntu.com/ – Basile Starynkevitch Sep 30 '17 at 06:05
  • I'm just gonna back up and grab a fresh OS – Austin Hester Sep 30 '17 at 06:09
  • Yes, seems reasonable. But before using `gcc` study its documentation, before using `make` study its documentation, before using a unix shell study its documentation. You'll better spend a whole week in reading things to understand what happens on your computer – Basile Starynkevitch Sep 30 '17 at 06:10
  • Yea I'm in an OS class and reading documentation everyday. I know a whole lot about how my computer works. I have tons of them. Spend at least 40 hours a week either coding or studying, but thanks. – Austin Hester Sep 30 '17 at 06:13
  • You apparently did not read enough about `make`, because your `Makefile` is so wrong... Take time to follow the links I have put in my answer. So perhaps you are not reading enough. But be patient, see http://norvig.com/21-days.html for a useful insight – Basile Starynkevitch Sep 30 '17 at 06:16
  • Congratulations. I started programming at 14, it was 1974 and on punched cards (PL/1, IBM 370/168 mainframe). But your question shows that you don't understand what is happening on your computer (and neither do I, because I am not sitting in front of it and can't use various commands to investigate) – Basile Starynkevitch Sep 30 '17 at 06:24
0

The problem you see is that as (the GNU assembler) is not found. When gcc tries to load the assembler, something completely different is attempted.

My (wild) guess is that you installed Android Studio as 'as'. At least the error message appears somehow familiar.

mfro
  • 3,286
  • 1
  • 19
  • 28