我使用 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 将被编程为在内部执行此操作。