为什么我生成的 .a 静态库包含到我的个人计算机的路径/引用?

问题描述

我使用这个 CMakeLists.txt 来生成一个静态库:

target_include_directories(app PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
add_library(lib STATIC "")
target_sources(lib PRIVATE lib.c)
target_include_directories(lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/)
target_link_libraries(app PRIVATE lib)

在这种情况下,生成.a 文件只有 2kB,并且不包含对本地 PC 上构建文件夹的任何引用。

但是,当我想引用另一个库(Zephyr RTOS 内核库)时,突然生成.a 文件变成了 9kB,其中包含对 build 文件夹的引用。我所做的只是将这一行添加到 CMakeLists.txt 中:

target_link_libraries(lib PRIVATE kernel)

我该如何解决这个问题?现在我不能在我自己的任何其他计算机上使用 .a文件,因为引用了我 PC 上的绝对路径

我是否需要使用抽象层来抽象出静态库中所有 Zephyr 特定代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)