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
精彩评论