Esto puede ser una pregunta de Visual Studio más que cualquier otra cosa ...
Estoy tratando de compilar a 0MQ C++ example usando VS10 y ZeroMQ 2.2.0.
Descargué el windows sources e intenté seguir these instructions para construir 0MQ estáticamente. Específicamente:vinculando a una biblioteca 0MQ estática en VS
- conmutada a la Versión
- para los 7 proyectos de la solución:
- establece
General\Configuration Type
-Static library (.lib)
- establecer
C/C++\Code Generation\Runtime Library
aMulti-threaded (/MT)
- añadió
ZMQ_STATIC
aC/C++\Preprocessor\Preprocessor Definitions
- establece
- Actualizado
zmq.h
yzmq_utils.h
de modo que si_MSC_VER
yZMQ_STATIC
se definen a continuaciónDLL_EXPORT
también se definirá
En este punto parece 0MQ para construir así.
- Creó un proyecto de consola vacía:
- cambió a Soltar
- añade un archivo CPP individual con el ejemplo vinculado anteriormente
- cambiado
random
-rand
,srandom
asrand
ysnprintf
a_snprintf
- cambiado
- conjunto
C/C++\Code Generation\Runtime Library
aMulti-threaded (/MT)
- añade
...\zeromq-2.2.0\include
carpeta paraC/C++\General\Additional Include Directories
- añadió
...\zeromq-2.2.0\builds\msvc\Release\*.lib
aLinker\Input\Additional Dependencies
Sin embargo sigo recibiendo los siguientes errores de enlace:
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_bind
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_close
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_errno
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_init
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_msg_data
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_strerror
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_socket
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_msg_init_size
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_term
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_msg_close
1>zmqexp.obj : error LNK2001: unresolved external symbol __imp__zmq_send
¿Qué he perdido?
Para aclarar, la definición de ZMQ_STATIC significa que no se usa ninguna de las marcas DLL (no se define __declspec (dllimport) o __declspec (dllexport)) –