2009-09-02 132 views
2

我试图编译一个使用第三方库的包。我刚才有这个工作,但现在它只是拒绝链接。以下是错误示例:xcode链接器错误

"lwpp::GlobalBase<char const*()(char const*)>::globPtr", referenced from: 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in main.o 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in license-2998A499.o 
    ... 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

第三方项目(lwpp)作为子项目包含在内。我已经点击并将其构建产品拖放到Targets> plugin_name> Link Binary With Libraries中,但它仍然不起作用。 如果我导入lwpp的源文件,那么这些链接错误全部消失。我完全丧失了。

回答

1

显然lwpp::GlobalBase< char const*()(char const*) > ::globPtr必须在某处定义。要么你必须自己在一个源文件中定义它,或者如果它已经在库中定义了,你可能需要在main.cpp中声明它为extern

+0

它在库中定义。正如我所说,我已经有过它的工作,但现在xcode/gcc已决定它不会链接。我有一个朋友试了一下,对他来说,它在他的机器上链接并编译好。我尝试在我的机器上使用相同的项目文件,并且出现链接器错误。这个不成立。 – 2009-09-02 19:54:34

+0

我只是猜测在这里,但问题可能是模板实例化...尝试显式实例化GlobalBase Dima 2009-09-02 23:19:44