早就该记录一下
1 某个工程编译出的库,其他工程链接不上, 查看了符号,是有的,
发现 cmakelists.txt中的版本号不一样,把 低的改高, 好了
2 编译某工程, 发现 很多地方报 assert 未声明错误, 原来是 自己代码中包含了一个空的assert.h ,
去掉这个文件好了,
3 链接器说某个符号找不到,使用nm命令查看依赖的某个库,确实有这个符号,怎么回事?原来是库之间相互依赖,在链接给定的顺序的时候有一定要求,比如库B依赖库C, 程序A依赖B和C,那么依赖顺序应该写成 B C,而不是反过来。
这个问题具体可以参考
https://blog.csdn.net/sweetfather/article/details/92691637