usr/lib/gcc-cross/arm-linux-gnueabihf/9/../../../../arm-linux-gnueabihf/bin/ld: ../../../lib/liblog.so: undefined reference to `bts_log::SystemLog::shmCfgId 自定义的库
时间: 2023-07-05 12:32:52 浏览: 203
AM335X开发日记.pdf
这个错误和之前的错误类型是一样的,都是`undefined reference`,意味着链接器在链接时找不到对应的符号。错误信息中提到了缺失的符号是`bts_log::SystemLog::shmCfgId`,这个符号可能是在自定义的`liblog.so`库中定义的。
要解决这个问题,你需要确保自定义的`liblog.so`库已经正确地链接到你的项目中,并且可以找到`bts_log::SystemLog::shmCfgId`符号。
你可以尝试以下几个步骤来解决这个问题:
1. 确认自定义的`liblog.so`库已经正确地安装在你的系统中,并且可以被找到。你可以使用`ldconfig -p | grep liblog.so`命令来检查库是否已经安装,并且可以被系统找到。
2. 确认你的项目中已经正确地包含了自定义的`liblog.so`库。你可以在CMakeLists.txt文件中使用以下命令来链接库:
```
target_link_libraries(你的项目名 log)
```
这将链接`liblog.so`库到你的项目中。
3. 如果你的项目中包含多个库,可能存在库链接顺序的问题。你可以尝试修改库的链接顺序来解决这个问题。你可以在CMakeLists.txt文件中使用以下命令来指定库的链接顺序:
```
target_link_libraries(你的项目名 -Wl,--start-group 库名1 库名2 ... -Wl,--end-group)
```
这将强制链接器按照指定的顺序链接库。
希望这些方法能够帮助你解决这个问题。
阅读全文