|
|
1
2
很多次都有效的一个老技巧:在链接阶段列出每个静态库两次。 也就是说,在你的makefile(或你正在使用的任何东西)中,放:
不管怎样,我希望你能明白。 |
|
|
2
1
我发现我把一个.CPP文件添加到我的项目中,我刚刚把它重命名为.c。我不认为这会引起问题 我认为文件扩展名决定了何时IDE在gcc和g++之间进行选择。但不是。在code::blocks中,如果添加扩展名为.cpp的文件,它将使用g++。如果添加扩展名为.c的文件,它将使用gcc。但是,如果重命名文件,它将使用相同的编译器。您必须在项目选项中明确地更改它。 D模块是用G++而不是GCC构建的。 当我设置IDE来显示构建时的整个命令行时,我意识到了这一点,而不仅仅是“编译foo.c”。 |
|
|
3
1
在我为简化应用程序/库构建而编写的master make文件中,我使用的解决方案是运行链接步骤两次。使用-u链接器选项在第二个链接上指定未定义的符号。 在我的make文件中,我有一个这样的目标:
它调用这个宏…第一次尝试链接…
由于我的sed/regexp技能不好(我匆忙写了这些东西),我最终得到了undefined.txt,其中包含:
也就是说,带有一个尾随' 然后,我使用make语法删除的,并删除重复的
“follow”过滤器是因为如果多次引用未定义的符号,则输出中会出现一条消息“more references to xxx follow”,这会导致在undefined.txt文件中出现虚假的“follow”,例如。
最后,我第二次链接(注意对undefined.txt的依赖)
顺便说一下,我完全重新推荐了下面这本书,因为我能在几天内从头开始编写一个简单的构建系统。 使用GNU make管理项目,第三版 作者:罗伯特·梅克伦堡 |
|
|
4
0
也许你应该用
|
|
|
a name · 链接器找不到clGetPlatformID()? 1 年前 |
|
|
Oberon311 · 链接器错误:未定义对函数的引用 7 年前 |
|
|
orezvani · 未定义对父类中方法的引用 11 年前 |
|
|
onavarro · 一个非常简单的c++程序中的“未定义引用”错误 12 年前 |