我试图找出在Qt Creator中编译代码时导致错误的东西,即在我外部构建的库中进行链接。
它抱怨“对myclass :: myclass(args)”构造函数的未定义引用。
但是,已经构建了此类,并且目标文件包含在名为common.a的存档中。
引用myclass的代码实际上在另一个库中,名为CSV.a
所以,我知道我的Qt项目可以看到CSV.a,而且我知道还有其他一些共同点的引用。它没有抱怨,但显然CSV.a中的东西看不到这种安排中的共同点。
我需要做些什么不同的事情?
答案 0 :(得分:4)
链接器使用命令行中列出库的顺序来确定实际需要哪些符号。您需要从最依赖到最依赖的顺序进行排序,以便做出决定。例如,首先列出CSV.a
,以便编译器知道它需要在某处找到myclass::myclass(args)
。然后列出common.a
秒,编译器将找到并链接该构造函数。
答案 1 :(得分:0)
您可能需要确保链接器命令行CSV.a
后跟common.a
,而不是相反。