在Ubuntu下使用cmake编译工程,Cmakelists如图所示
,cmake通过之后make,结果出现如下错误
,貌似源文件引用的静态库中的文件都没有找到。请问有大神知道这是为什么以及如何解决吗?
Ubuntu下cmake链接静态库
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-07 03:04关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题是由于静态库没有正确加载导致的。要解决这个问题,你需要确保所有的静态库都在你的项目的路径范围内,并且它们被正确地包含在你的项目中。
如果你正在使用的是CMake的默认设置,那么你应该能够看到所有所需的静态库在项目的路径范围内。然而,如果这不是你的情况,那么你可以尝试以下步骤来解决问题:
- 确保你的静态库位于项目的路径范围内。
- 如果你的静态库是共享库,那么你需要将它们放在项目的目录中。这可以通过将它们添加到项目的构建脚本中来实现。
例如,如果你有一个名为
libosdk-core.so的共享库,你可以将其添加到你的CMakeLists.txt文件中,如下所示:find_library(OSDK_CORE_LIBRARY libosdk-core.so REQUIRED)然后,在你的目标文件中,你可以这样引用它:
#include <iostream> #include "sdk/core/vehicle.h" using namespace std; int main() { vehicle_t * vehicle = new vehicle_t(); vehicle->is_m100(); // This will fail if the library is not found }如果你的目标文件中没有这个变量,那么编译时会出错。
解决 无用评论 打赏 举报