GCC错误:无法找到或加载主类com.intellij.idea.Main编译C

时间:2017-09-30 05:24:43

标签: c linux gcc makefile sysadmin

无论我做什么,GCC都会给出这个错误。我卸载了gcc和所有库,重新安装并重新启动。 gcc昨晚正在工作,当我今天打开我的笔记本电脑时,它试图寻找intellij文件。

这是我运行make时遇到的错误。注意:我尝试编译的每个源文件都会发生这种情况。刚开始今天。它昨天正在运作。

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

https://github.com/ahester57/WAR

which gcc给了我/usr/bin/gcc

which as给了我/usr/bin/as

我已经尝试了/usr/bin/gcc -c war.c并且它提供了保存错误(与intellij有关)。我甚至没有安装intellij。

只是寻找任何见解,如果没有其他人遇到此问题,可能会重新安装操作系统。在Ubuntu 17.04上使用vim和bash。 17.10就在附近。

$ 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

感谢Basile,让gcc再次工作。

解决方案:

apt-get reinstall gcc gcc-multilib
apt-get reinstall binutils

2 个答案:

答案 0 :(得分:0)

输入which gccwhich as(我不会感到惊讶,输出会很奇怪,应该是/usr/bin/gcc/usr/bin/as)然后gcc -vgcc --version;正确(可能在~/.bashrc$PATH的设置(因此请使用echo $PATH查找内容)并在$(CC)中使用Makefile。顺便说一句,您gcc中不需要Makefile行,因为make具有内置规则(类型make -p来查找它们)

如果这还不够(应该是)添加一个明确的

CC= /usr/bin/gcc

Makefile中,这是非常错误的。

花些时间阅读documentation of make,然后完全重写Makefile

请参阅thisthat答案(其中包含相关示例)

您应该编译所有警告和调试信息,可能是通过

CFLAGS+= -Wall -Wextra -g

另请阅读documentation of GCC。您可能不需要-w并且您正在使用-c错误(它正在跳过linking步骤而只是编译)。

BTW,gcc的参数顺序很重要(而且你弄错了)。

  

我卸载了gcc和所有库,重新安装并重新启动。 gcc昨晚正在工作,当我今天打开我的笔记本电脑时,它试图寻找intellij文件。

PS。也许您的/usr/bin/gcc已被破坏(或as使用gcc,尝试重新安装binutils包)并且可能您的系统已损坏,您首先需要修复它才能编辑一个简单的helloworld.c程序然后执行(在终端中运行 shell ,如bash或{ {1}})zsh然后运行gcc -v -Wall -g helloworld.c -o helloworldprogram。一旦情况良好,请阅读documentation of makedocumentation of GCC并重新开始您的项目。

附录

在你提到的评论中https://github.com/ahester57/WAR这里是一个更好的Makefile for 7ed7133e09c7bb2af

./helloworldprogram

答案 1 :(得分:0)

您看到的问题是找不到(GNU汇编程序)。 当gcc尝试加载汇编程序时,会尝试完全不同的东西。

我的(狂野)猜测是您将Android Studio安装为&#39;作为&#39;。至少错误消息以某种方式显得熟悉。