C Linking Error: undefined reference to 'main'

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1049)

我试图将几个c程序链接在一起,并且我得到一个错误的回应:

$ gcc -o runexp.o scd.o data_proc.o -lm -fopenmp
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
make: * [runexp] Error 1

我有一个主要函数,它是runexp。表单是

int main(void) {
    ...; 
    return 0;
}

为什么我会得到这个错误?

提问于
用户回答回答于

-o选项后应提供输出文件名称。在你的情况下runexp.o被视为输出文件名,而不是输入对象文件,因此你的main函数是未定义的。

用户回答回答于

你不包括main()编译时包含的C文件,所以链接器没有看到它。

你需要添加它:

$ gcc -o runexp runexp.c scd.o data_proc.o -lm -fopenmp

所属标签

可能回答问题的人

  • 女淘日记

    杭州吱吱吱科技 · 站长 (已认证)

    1 粉丝1 提问3 回答
  • 找虫虫

    6 粉丝0 提问3 回答
  • 朝夕熊博客

    1 粉丝2 提问3 回答
  • 13火麒麟

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券