使用GCC编译简单的C程序时出现clang错误

时间:2018-07-26 02:39:45

标签: c gcc

我只是编写一个简单的C程序,如下所示:

int main(int argc, char *argv[])
{ 
  return argc; 
}

但是,当我编译并链接程序时,遇到了Clang错误。设置或gcc怎么了?

LB:test liangbin$ gcc ./src/test_main.c -o ./obj/test_main.o
LB:test liangbin$ gcc ./obj/test_main.o -o ./bin/test_main
ld: can't link with a main executable file './obj/test_main.o' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)*

1 个答案:

答案 0 :(得分:4)

尽管您指示gcc将编译的输出放在./obj/test_main.o中,但是您并没有告诉它创建一个目标文件而不是可执行文件。默认情况下,给定源文件时,gcc会编译并链接它。结果,./obj/test_main.o是一个可执行文件,第二个命令抱怨说它被赋予了可执行文件,而不是目标文件。

您可以通过将第一个命令更改为以下内容来解决此问题:

gcc ./src/test_main.c -c -o ./obj/test_main.o

-c开关指示gcc仅进行编译,而不进行链接。

相关问题