代码之家  ›  专栏  ›  技术社区  ›  Austin Hester

GCC错误:无法找到或加载主类com。intellij。主意主编译C

  •  0
  • Austin Hester  · 技术社区  · 7 年前

    无论我做什么,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 回复  |  直到 7 年前
        1
  •  0
  •   Basile Starynkevitch    7 年前

    类型 which gcc which as /usr/bin/gcc /usr/bin/as )然后两者 gcc -v gcc --version ; 正确(可能在 ~/.bashrc $PATH echo $PATH 找出它是什么)并使用 $(CC) 在你的 Makefile . 顺便说一句,你不需要排队 gcc 因为 make 具有内置规则(类型 make -p 找到他们)

    如果这还不够(应该)添加一个显式

    CC= /usr/bin/gcc
    

    在你的 这辆车相当多。

    花时间阅读 documentation of make 然后 重写您的 完全

    this that

    您应该使用所有警告和调试信息进行编译,可能需要

    CFLAGS+= -Wall -Wextra -g
    

    另请阅读 documentation of GCC -w 您正在使用 -c 错误(跳过 linking 步骤和编译)。

    通用条款 很重要(你搞错了)。

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

    附:也许你的 被宠坏了(或你的 as ,尝试重新安装 binutils 软件包)并且可能 ,您需要首先修复该问题,才能编辑简单的 helloworld.c 程序然后执行(在 运行a的终端 喜欢 bash zsh )a gcc -v -Wall -g helloworld.c -o helloworldprogram 然后运行 ./helloworldprogram 文件 制作 , 然后重新开始你的项目。

    附录

    https://github.com/ahester57/WAR 这里有一个更好的提交生成文件 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 *~
    
        2
  •  0
  •   mfro    7 年前

    当gcc尝试加载汇编器时,会尝试完全不同的操作。

    我(疯狂地)猜测你安装的Android Studio是“as”。至少错误消息看起来有些熟悉。