开发者

Using linux root libraries in windows

I have to work with c++ libraries based on ROOT cern. These libraries were written with Linux environment and k dev and now I have to use these libraries in windows with Visual Studio. First I am just trying to compile some headers .h and some source codes .cpp in Visual c++ to create a dll. these files compiled without any problem in Linux.

So I have a problem generating a working DLL that I can use later in csharp.

The errors i am getting are LNK errors even though I believe I added the necessary .lib in the linker wich are libraries related to ROOT.

The errors are the following :

Error 1 error LNK2001: u开发者_开发技巧nresolved 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) 

I'd really appreciate if someone could point to some hints!


Unfortunately, this is not possible. You have to re-compile those libraries on Windows if you have source code. Otherwise ask the vendor for a Windows version.


Here are some links that might be useful for you.

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

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

Good luck


you'll have to browse on the source of those libraries (not a problem, since ROOT is open source) and find the definitions for those methods. It might sound obvious, but it seems those functions are supposed to be defined elsewhere

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜