-
Notifications
You must be signed in to change notification settings - Fork 385
export.h
mutouyun edited this page Dec 9, 2025
·
1 revision
#include "libipc/export.h"
定义库导出宏,用于动态库和静态库的符号可见性控制。
#ifdef LIBIPC_LIBRARY_SHARED_BUILDING__
# define IPC_EXPORT IPC_DECL_EXPORT
#elif defined(LIBIPC_LIBRARY_SHARED_USING__)
# define IPC_EXPORT IPC_DECL_IMPORT
#else
# define IPC_EXPORT
#endif符号导出/导入宏,根据编译模式自动选择合适的声明。
| 编译模式 | 宏定义 | 用途 |
|---|---|---|
LIBIPC_LIBRARY_SHARED_BUILDING__ |
IPC_DECL_EXPORT |
编译动态库时导出符号 |
LIBIPC_LIBRARY_SHARED_USING__ |
IPC_DECL_IMPORT |
使用动态库时导入符号 |
| 其他(静态库) | 空 | 静态链接,无需导出/导入 |
#define IPC_DECL_EXPORT __declspec(dllexport)
#define IPC_DECL_IMPORT __declspec(dllimport)#define IPC_DECL_EXPORT __attribute__((visibility("default")))
#define IPC_DECL_IMPORT __attribute__((visibility("default")))通常不需要直接使用这些宏,库的公开API已经正确标记了IPC_EXPORT。
# Linux/FreeBSD
g++ -shared -DLIBIPC_LIBRARY_SHARED_BUILDING__ -o libipc.so *.cpp
# Windows (MSVC)
cl /LD /DLIBIPC_LIBRARY_SHARED_BUILDING__ /Fe:ipc.dll *.cpp# 编译时定义
g++ -DLIBIPC_LIBRARY_SHARED_USING__ -o myapp main.cpp -lipc# 不需要特殊定义
g++ -o myapp main.cpp -lipc- Platform Support - 平台支持文档