我在 Visual c++ 2010 中有一个项目,其中包含关键头文件中的预处理器指令。其实就是ZMQ源码。
该项目通常配置为 dll,因此标头使用 DLL_EXPORT 的状态(已定义/未定义)。如果项目用于编译 dll,则 dll 项目或客户端代码都可以使用标头,这要归功于从 zmq.h 中获取的以下设置:
#if defined _WIN32
# if defined DLL_EXPORT
# define ZMQ_EXPORT __declspec(dllexport)
# else
# define ZMQ_EXPORT __declspec(dllimport)
# endif
但是,这不支持我正在构建静态库的设置。因此我必须手动修改标题。Visual Studio 似乎可以识别 dll 项目设置并相应地处理 dll_export 的定义。是否有 Visual Studio 识别的符号,对应于静态库设置?基本上,我想通过扩展上面代码片段中使用的方法来处理静态库的编译和使用。