我正在使用Visual C ++ 2005来构建一些库和一个可执行文件。 我将STLport位置包含在库的附加包含路径中,并将库包含在链接器的输入中以供可执行文件使用。
但是,如果没有stl端口命名空间,那么库似乎需要使用stl符号(例如字符串)。 这会导致链接器错误。
这些是来自2个库和可执行文件命令行的相关行:
/Od /I "..\Junctions\fo_fid_3rdParty\STLport-5.1.0\stlport"
/Od /I "..\Junctions\Includes\fo_fid_3rdParty\STLport-5.1.0\stlport"
/OUT:"..\ET_BUILD\vc8\Debug\bin\SFGWDealerwebFixAutorecD.exe" /INCREMENTAL:NO /NOLOGO
..\junctions\libs\fo_fid_3rdParty\STLport-5.1.0\lib\stlportstld_vc8.5.1.lib
以下是错误示例。 错误7错误LNK2001:未解析的外部符号“public:virtual bool __thiscall Springfield :: CClientFramework :: ProviderRequest(class std :: basic_string,class std :: allocator> const&,class std :: basic_string,class std :: allocator > const&,class std :: basic_string,class std :: allocator> const&)“(?ProviderRequest @ CClientFramework @ Springfield @@ UAE_NABV?$ basic_string @ DU?$ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ 00 @ Z)FixAutorec.lib
此符号Springfield :: CClientFramework :: ProviderRequest来自库ClientArchitecture.lib 这是dumpbin.exe显示此符号的方式: (public:virtual bool __thiscall Springfield :: CClientFramework :: ProviderRequest(类stlpd_std :: basic_string,类stlpd_std :: allocator> const&,类stlpd_std :: basic_string,类stlpd_std :: allocator> const&,类Springfield :: IDataStoreNode const *))
请注意,要查找的符号定义其字符串std :: basic_string。 而目标将符号定义为stlpd_std :: basic_string。
感谢