2014-01-21 91 views
2

是否有用于忽略未定义参考的编译器选项?我在Linux下编译C++代码。忽略C++中的未定义参考

+7

为什么忽略当你可以修复? - http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-doi-i-fix –

+1

忽略这些错误的唯一方法是看看别的地方;)的 – Trenin

+0

可能重复[GCC能不抱怨未定义的引用?](http://stackoverflow.com/questions/5555632/can-gcc-not-complain-about-undefined-references) –

回答

10

不,这是不可能的。链接器物理上不能生成具有未定义引用的输出可执行文件。这不是链接器的选择。

这有点像说,“对此列表进行排序,但我不会告诉你的名单是什么”或“解决我的问题,但我只甩了代码”。

+4

上无反射你的答案,但这是什么是疯了。 100分明确说明你今天做出的明显和一些答案,花费时间和想法将得到20分。 – Duck

+1

永不言败。一些链接器可让您将.o文件合并到一个新的.o文件中。当然这个新的.o文件将有未定义的引用。 –

+0

虽然.o不是可执行文件。 – thecoshman

3

您还没有编译,你是链接。当您正在链接的程序调用未在您链接的程序部件内定义的函数时,会发生未定义的引用错误。忽略那个错误意味着程序会调用一个不存在的函数 - 然后会发生什么?

那么简单的答案是:世界上没有这样的选项,那就没有意义了。

1

编译已经这样做忽略未定义的引用,颇受设计。

1

对于下面我假设你指的是链接错误,不是编译器错误。 看看这个: Can GCC not complain about undefined references?

这对我来说非常有用,因为我写这是在C文件中使用了一堆东西测试用例。对我来说问题是在这个相同的C文件中定义了函数,其中包含对未定义函数的引用。也就是说,在我有限的测试范围内,它们对我来说是未定义的,但我没有调用这些函数。 因此,我希望它编译和链接没有错误。 还有其他的解决方案,如:Is there a way to ignore an unused undefined references? 但我无法得到它的工作(可能是因为我有一个旧版本的gcc)