这可能是一个 Visual Studio 问题,最重要的是......
我正在尝试使用 VS10 和 ZeroMQ 2.2.0构建一个 0MQ C++ 示例。
我下载了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 似乎构建良好。
- 创建了一个空的控制台项目:
- 切换到发布
- 使用上面链接的示例添加了一个 cpp 文件
- 更改
random为rand,srandomtosrand和snprintfto_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
我错过了什么?