最近用zeromq 去实现游戏资源进程相关功能。
这两天遇到一个C++项目的编译问题:
a.lib 引用到 zeromq 的库 libzmq.lib , b.exe 引用到 a.lib。
但在编译 b.exe 的时候却还一直报 a.lib 找不到 zeromq库相关的函数定义,而a 项目的编译是正常的。
搞了半天都没解决问题,后来找身边的同事帮忙查查,也找不到根源所在。
不得已,只能求助于主程了。他看了一下那报错,在明确了a 项目里已加了zeromq库的相关设置后,就直接下结论是 a 项目里有关zeromq库的预处理宏没定义。
只需在 a 的项目设置的预处理定义里加上 zeromq 的宏 ZMQ_LIB 即可。
其实之前研究 freeimage 的时候也曾遇到过相关的问题,忘记设置freeimage的宏 FREEIMAGE_LIB,但现在却完全没这印象了。
为避免再次犯糊涂,特此记录。