Это может быть вопрос Visual Studio больше, чем что-либо еще...
Я пытаюсь построить пример 0MQ С++ с использованием VS10 и ZeroMQ 2.2.0.
Я загрузил источники Windows и попытался выполнить эти инструкции в чтобы построить 0MQ статически. В частности:
- Отключено к выпуску
- Для всех 7 проектов в решении:
- установите
General\Configuration Type
вStatic library (.lib)
- установите
C/C++\Code Generation\Runtime Library
вMulti-threaded (/MT)
- добавлен
ZMQ_STATIC
вC/C++\Preprocessor\Preprocessor Definitions
- установите
- Обновлены
zmq.h
иzmq_utils.h
, так что если_MSC_VER
иZMQ_STATIC
определены, тоDLL_EXPORT
также будет определен
В этот момент 0MQ, похоже, хорошо строится.
- Создан пустой консольный проект:
- переключился на Release
- добавлен один файл cpp с приведенным выше примером
- изменил
random
наrand
,srandom
наsrand
иsnprintf
на_snprintf
- изменил
- установите
C/C++\Code Generation\Runtime Library
вMulti-threaded (/MT)
- добавлена папка
...\zeromq-2.2.0\include
вC/C++\General\Additional Include Directories
- добавлен
...\zeromq-2.2.0\builds\msvc\Release\*.lib
вLinker\Input\Additional Dependencies
Однако я все еще получаю следующие ошибки связывания:
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
Что я пропустил?