【发布时间】:2023-06-12 07:10:01
【问题描述】:
我使用 XCode 编写了我的程序。它在 Mac 上运行没有任何问题。有人告诉我,我们的项目将在 Linux 机器上编译,所以我想在提交之前确保它在 Linux 上工作。当我尝试在 Linux 上编译时,它给了我一些参考错误:
/tmp/cckwoehj.o: In function `main':
main.cpp:(.text+0x9): undefined reference to `ReadFile()'
/tmp/cckwoehj.o: In function `leftSearch(NODE*, int)':
main.cpp:(.text+0x38b): undefined reference to `conflict(int**)'
main.cpp:(.text+0x3ca): undefined reference to `removeAllRowsWithLiteral(int**, int)'
main.cpp:(.text+0x3ec): undefined reference to `removeAllSpecifiedLiteral(int**, int)'
main.cpp:(.text+0x4ec): undefined reference to `conflict(int**)'
main.cpp:(.text+0x522): undefined reference to `unitPropagation(int**)'
main.cpp:(.text+0x538): undefined reference to `conflict(int**)'
/tmp/cckwoehj.o: In function `rightSearch(NODE*, int)':
main.cpp:(.text+0x992): undefined reference to `conflict(int**)'
main.cpp:(.text+0x9d4): undefined reference to `removeAllRowsWithLiteral(int**, int)'
main.cpp:(.text+0x9f3): undefined reference to `removeAllSpecifiedLiteral(int**, int)'
main.cpp:(.text+0xaf3): undefined reference to `conflict(int**)'
main.cpp:(.text+0xb29): undefined reference to `unitPropagation(int**)'
main.cpp:(.text+0xb3f): undefined reference to `conflict(int**)'
collect2: ld returned 1 exit status
我在网上找到的东西都是关于模板的。我不使用模板。我还发现了一个关于 32 位和 64 位操作系统问题的问题。
我有一个名为 ReadFile 的函数,它在标头中声明。我从 main 调用它并将该头文件包含在 main.h 中。我不确定问题是什么。如果 OS X 编译并运行而 Linux 没有,我假设 OS X 在内部做了一些它认为很明显的事情,但 Linux 不是那样写的。这是链接器错误吗?我认为 OS X 会在内部进行编程。
【问题讨论】:
-
如何为 Linux 构建代码?