LLVM*.lib
Windows で LLVM 3.3 をビルドするという (恐ろしい) タスクを実行していて、大量のファイルがある段階に到達しました。それらを 1 つの巨大な共有 DLL にリンクしたいのですが、苦労しています (Windows でリンクするのはこれが初めてです)。私はもう試した:
link /DLL /MACHINE:X64 /OUT:LLVM3.3.dll LLVM*.lib
しかし、役に立たない。次のエラーが発生します。
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
インターネットは/DEFAULTLIB:corelib
スイッチを追加することを提案したので、私はそれを行いましたが、やはり問題があります:
> 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'
どうすればいいですか?
編集:空DllMain
を実装してから作成することにより、上記の問題を修正できましEmptyDllMain.obj
た:
#include <windows.h>
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
そして試してみます:
link /DLL /OUT:LLVM3.3.dll LLVM*.lib EmptyDllMain.obj
しかし、私が取得したDLLはわずか8kbです.LLVMライブラリの何メガバイトも見逃しているようです! それらを含めるにはどうすればよいですか?
EDIT2: Windows での LLVM コンパイルの問題を解決しました。github のこのドキュメントをご覧ください。