#记录一个奇怪的Protobuf Bug
功能:库A负责项目Protobuf数据类型和自定义的类型转换
库A引用了protobuf 库和生成的.cc文件
库B负责具体的业务功能,需要用到库A
Linux ,QT下编译运行成功
Vs2019不行,编译不通过,提示找不到protobuf结构的构造函数和析构函数
最后将protobuf生成的.cc文件加入测试用的工程一起编译,成功。
原因:protobuf结构的.cc并不会参与到生成库(A)的构建,当其他库(B)引用A时,需要将.cc添加到B中一起构建,最后编译测试通过(该Bug最后在一个二十多年C++经验的大佬下协助解决)
补档:
真实原因时Windos下编译生成动态库需要加DLLOUT,而Linux不需要。VS2019生成动态库时只会将带有DLLOUT的编入动态库