编译的第三方库,编译好之后用头文件函数显示无法解析的外部符号,如下
使用VS显示全部链接信息
即属性-》配置-》链接器-》显示进度-》显示所有进度消息(/VERBOSE)
属性-》配置-》链接器-》启用增量链接-》否
可以看到符号被丢弃了,没有导出,使用_declspec(dllexport) 导出
即class _declspec(dllexport) ObjectMetaData {
public:...}
_declspec(dllexport) const char* func();
Linux
__attribute__((visibility("default")))
在cmake中
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default")