gcc:允许未定义的符号

Pan*_*nsy 3 c linker gcc

我不希望gcc链接器将未定义的符号显示为链接错误.我在MAC OSX 10.6上使用gcc 4.2

当然我在线寻找解决方案,但所有的尝试都失败了!

如何修改此命令以摆脱未定义的符号错误?

gcc -o Proj $(wildcard *.o);
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:我正在研究一个研究项目,我需要代码可链接,我不在乎它是否会有运行时异常

Ed *_* S. 5

咦?这是没有意义的.这一个错误,不容忽视.当链接器无法完成其工作时,您无法构建可执行文件.您是否希望它只是发明一个实现并希望它能够解决?

相反,您需要了解如何正确配置要构建的项目.如果依赖外部库,则需要在链接器搜索路径中添加路径.

编辑:根据你的评论......

有一些选项可以抑制链接错误,比如在这里源码Sourceware.org/binutils/docs/ld/Options.html我正在研究一个研究项目,我需要代码可链接而且我不在乎它是否会有运行时异常

嗯,你仍然不能,它仍然没有意义.请仔细阅读该部分:

在链接时指定的共享库中允许未定义的符号引用的原因是:

链接时指定的共享库可能与加载时可用的共享库不同,因此该符号实际上可以在加载时解析.有一些操作系统,例如BeOS和HPPA,共享库中的未定义符号是正常的.

因此,在某些情况下,允许共享库中的未定义符号是合理的,因为您可能无法链接到实际将链接到的动态库的相同版本.

但是,您希望构建可执行文件,而不是共享库,因此执行您要求的操作毫无意义.你只需要一个可执行的东西,它将无法使用.为什么任何理智的编译器都允许这样的条件?