Tôi đang thực hiện nhiệm vụ xây dựng LLVM 3.3 (đáng sợ) trên các cửa sổ và tôi đã tải xuống các tệp LLVM*.lib
. Tôi muốn liên kết chúng với nhau để một DLL chia sẻ rất lớn nhưng đang đấu tranh (đây là lần đầu tiên tôi liên kết nội dung trên cửa sổ). Tôi đã thử:Liên kết rất nhiều .libs để tạo DLL: biểu tượng bên ngoài chưa được giải quyết _DllMainCRTStartup
link /DLL /MACHINE:X64 /OUT:LLVM3.3.dll LLVM*.lib
nhưng vô ích. Nó lỗi với:
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
Internet đề nghị thêm /DEFAULTLIB:corelib
chuyển đổi, vì vậy tôi đã làm điều đó nhưng một lần nữa nó có vấn đề:
> 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'
Làm thế nào để làm điều này?
EDIT: tôi quản lý để khắc phục vấn đề trên, bằng cách thực hiện một sản phẩm nào DllMain
và làm cho một EmptyDllMain.obj
từ nó:
#include <windows.h>
BOOL APIENTRY DllMain(HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
và sau đó cố gắng:
link /DLL /OUT:LLVM3.3.dll LLVM*.lib EmptyDllMain.obj
nhưng DLL tôi nhận ra chỉ là 8kb - có vẻ như đã bỏ lỡ nhiều megabyte thư viện LLVM! Làm thế nào để tôi đưa chúng vào?
EDIT2: tôi đã giải quyết được biên soạn LLVM trên Windows vấn đề, hãy nhìn vào document on github này.
xuất sắc trả lời, nhưng các thư viện cho Visual C++ 6 là gì.0 và nhỏ hơn * (corelibc có tên khác) *? – user2284570