问题描述
我使用这个 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 (将#修改为@)