2

ROOT cern に基づく C++ ライブラリを使用する必要があります。これらのライブラリは Linux 環境と k dev で作成されたものであり、これらのライブラリを Visual Studio の Windows で使用する必要があります。最初に、いくつかのヘッダー .h といくつかのソース コード .cpp を Visual C++ でコンパイルして dll を作成しようとしています。これらのファイルは、Linux で問題なくコンパイルされました。

したがって、後でcsharpで使用できる動作中のDLLを生成する際に問題があります。

ROOTに関連するライブラリであるリンカに必要な.libを追加したと信じているにもかかわらず、私が得ているエラーはLNKエラーです。

エラーは次のとおりです。

Error 1 error LNK2001: unresolved external symbol "public: virtual void __thiscall Directory::ShowMembers(class TMemberInspector &)" (?ShowMembers@Directory@@UAEXAAVTMemberInspector@@@Z) 

Error 2 error LNK2001: unresolved external symbol "public: virtual void __thiscall Directory::Streamer(class TBuffer &)" (?Streamer@Directory@@UAEXAAVTBuffer@@@Z) 

Error 3 error LNK2019: unresolved external symbol "public: static class TClass * __cdecl Directory::Class(void)" (?Class@Directory@@SAPAVTClass@@XZ) referenced in function "public: virtual class TClass * __thiscall Directory::IsA(void)const " (?IsA@Directory@@UBEPAVTClass@@XZ) 

誰かがいくつかのヒントを指摘できれば、本当に感謝しています!

4

3 に答える 3

1

残念ながら、これは不可能です。ソースコードがある場合は、Windowsでこれらのライブラリを再コンパイルする必要があります。それ以外の場合は、ベンダーにWindowsバージョンを問い合わせてください。

于 2011-07-15T17:38:00.650 に答える
0

ここに役立つリンクがいくつかあります。

http://www.cyberciti.biz/faq/how-do-i-create-files-needed-to-build-and-use-dlls-under-linux/

http://www.kegel.com/crosstool/

幸運を

于 2011-07-15T17:56:59.120 に答える