reparar moneda fixer files dlls descargar dañado como archivos archivo abrir dll build linker

moneda - dll-files.com client



Vincular lotes de.libs para crear un archivo DLL: símbolo externo sin resolver_DllMainCRTStartup (3)

Estoy realizando la (aterradora) tarea de construir LLVM 3.3 en Windows y he llegado al punto en el que tengo una carga de archivos LLVM*.lib . Quiero vincularlos a una gran DLL compartida pero estoy luchando (esta es la primera vez que enlace cosas en Windows). He intentado:

link /DLL /MACHINE:X64 /OUT:LLVM3.3.dll LLVM*.lib

pero fue en vano. Tiene errores con:

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 sugirió agregar el /DEFAULTLIB:corelib , así que lo hice, pero nuevamente tiene problemas:

> 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''

¿Cómo hago esto?

EDITAR: DllMain solucionar el problema anterior, implementando un DllMain vacío y haciendo un EmptyDllMain.obj partir de él:

#include <windows.h> BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; }

y luego intentando:

link /DLL /OUT:LLVM3.3.dll LLVM*.lib EmptyDllMain.obj

pero el archivo DLL que obtengo es de solo 8kb, ¡parece haber perdido muchos megabytes de bibliotecas de LLVM! ¿Cómo los incluyo?

EDIT2: resolví la compilación de LLVM en el problema de Windows, eche un vistazo a este documento en github .


Si ingresó manualmente el _DllMainCRTStartup , asegúrese de deletrearlo (watch case) correctamente. Tuve _DLLMainCRTStartup y _DLLMainCRTStartup un tiempo para ver por qué todavía recibí el error del enlazador. Para Windows CE, el enlace requerido lib es corelibc.lib .


Tuve esto una vez al vincular una lib con una plataforma incorrecta configurada (X86 a X64). Asegúrese de que todas las LLVM * .lib estén compiladas y vinculadas con la cadena de herramientas correcta:

[...]/Microsoft visual Studio 10.0/VC/bin/amd64/ cl.exe and link.exe

que obtienes llamando

"%PROGRAMFILES(X86)%/Microsoft Visual Studio 10.0/VC/vcvarsall.bat" amd64

También tuve problemas similares al mezclar MT y MD CRT, te recomiendo que te apegues a

/MD (or /MDd for debug)

al compilar los objetos para cualquiera de los LLVM * .lib (y cualquier otro objeto de otras bibliotecas externas que enlaza con estos).

[editar]

¡Y echar a ese feo EmptyDllMain.obj!

[/editar]


eliminar archivos lib de "ignorar bibliotecas predeterminadas específicas" de "Vinculador-> Entrada" en las propiedades del proyecto