Ich führe die (erschreckende) Aufgabe der Erstellung von LLVM 3.3 auf Windows und ich habe auf der Bühne, wo ich eine Last von LLVM*.lib
Dateien haben. Ich möchte sie zu einer großen gemeinsamen DLL verbinden, aber ich kämpfe (das ist das erste Mal, dass ich Sachen über Windows verlinke). Ich habe versucht:Linking viele .libs, um eine DLL zu machen: ungelöst externes Symbol _DllMainCRTStartup
link /DLL /MACHINE:X64 /OUT:LLVM3.3.dll LLVM*.lib
aber ohne Erfolg. Es Fehler mit:
LINK : warning LNK4001: no object files specified; libraries used
LINK : error LNK2001: unresolved external symbol _DllMainCRTStartup
LLVM3.3.dll : fatal error LNK1120: 1 unresolved externals
das Internet Zugabe schlug die /DEFAULTLIB:corelib
Schalter, so dass ich tat, aber auch hier hat es Probleme:
> link /DLL /MACHINE:X64 /DEFAULTLIB:corelibc /OUT:LLVM3.3.dll LLVM*.lib
LINK : warning LNK4001: no object files specified; libraries used
LINK : fatal error LNK1104: cannot open file 'corelibc.lib'
Wie kann ich das tun?
EDIT: ich es geschafft, das obige Problem zu beheben, indem Sie eine leere DllMain
Umsetzung und Herstellung eines EmptyDllMain.obj
davon:
#include <windows.h>
BOOL APIENTRY DllMain(HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
und dann zu versuchen:
link /DLL /OUT:LLVM3.3.dll LLVM*.lib EmptyDllMain.obj
aber Die DLL, die ich herausgeholt habe, ist nur 8kb groß - es scheint die vielen Megabyte an LLVM-Bibliotheken verpasst zu haben! Wie bekomme ich sie?
EDIT2: ich die LLVM Kompilierung unter Windows Problem gelöst, in diesem document on github einen Blick darauf werfen.
Ausgezeichnete Antwort, aber was ist die Bibliothek für Visual C++ 6.0 und darunter * (corelibc hat einen anderen Namen) *? – user2284570