【发布时间】:2012-04-28 21:27:16
【问题描述】:
这可能是一个 Visual Studio 问题,而不是其他任何问题...
我正在尝试使用 VS10 和 ZeroMQ 2.2.0 构建 a 0MQ C++ example。
我下载了windows sources 并尝试关注these instructions 以静态构建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、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
我错过了什么?
【问题讨论】:
标签: visual-studio static-libraries static-linking zeromq