Austin Hester Austin Hester - 3 years ago 303
C Question

GCC Error: Could not find or load main class com.intellij.idea.Main compiling C

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

I really have no idea. The best I'm hoping for is it to fix itself by the morning (ha).

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

Answer Source

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 *~
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download