長い投稿をお詫び申し上げます...
以前は、VSメニュー>ツール>オプション> VC++ディレクトリ>インクルードおよびライブラリファイルのディレクトリの下にSTLPortインクルードおよびライブラリディレクトリをリストしたときに、VC ++ソリューション(VS 2008を使用)を構築できました。ただし、.vcprojファイルと.slnファイルに完全に依存するビルドプロセスに移行したかったのです。これらは、各開発PCで個別に構成する必要があるVSオプションとは異なり、ソース管理にチェックインできます。ほとんどのライブラリの移行は、各プロジェクトのプロパティページ>構成プロパティ> C / C++>一般>追加のインクルードディレクトリにインクルードディレクトリを追加し、リンカー>一般>追加のライブラリディレクトリにライブラリディレクトリを追加することで処理しました。
残念ながら、このアプローチはSTLPortでは機能しません。リンク中にLNK2019およびLNK2001エラーが発生します。
Error 1 error LNK2019: unresolved external symbol "public: virtual bool __thiscall MyClass::myFunction(class stlp_std::basic_istream<char,class stlp_std::char_traits<char> > &,class MyOtherClass &,class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > &)const " (?myFunction@MyClass@@UBE_NAAV?$basic_istream@DV?$char_traits@D@stlp_std@@@stlp_std@@AAVSbprobScenarioData@@AAV?$basic_string@DV?$char_traits@D@stlp_std@@V?$allocator@D@2@@3@@Z) referenced in function _main MyLibrary.obj
Error 5 error LNK2001: unresolved external symbol "public: static void __cdecl MyClass::myFunction(class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > const &,class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > const &,class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > const &,class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > const &,long,enum MyClass::MessageType,int,class stlp_std::basic_string<char,class stlp_std::char_traits<char>,class stlp_std::allocator<char> > const &)" (?myFunction@MyClass@@SAXABV?$basic_string@DV?$char_traits@D@stlp_std@@V?$allocator@D@2@@stlp_std@@000JW4MessageType@1@H0@Z) MyLibrary.lib
これは、実行可能プロジェクトをライブラリプロジェクトである依存関係にリンクしているときに発生します。不思議なことに、これはライブラリプロジェクト自体をリンクしている間は発生しません。何か案は?