LLVM*.libWindows で 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 のこのドキュメントをご覧ください。