我对Zephyr非常陌生,在兄弟文件夹中添加和编译代码时遇到了困难。使用PlatformIO可能会使这一问题更加复杂,它的构建结构与股Zephyr结构略有不同。
IDE是Windows下的Visual代码
守则的结构如下:
Parent Folder
|-ext_library (contains CMakeList.txt)
|--source
|--include
|-zephyr_project (structure generated by PlatformIO)
|--zephyr (contains the master CMakeList.txt and prj.conf)
|--source
|--include
|--lib我想要做的是将源文件或静态库从zephyr_project添加到ext_library中,手动复制源文件/包含文件,或者手动构建库并复制它。
到目前为止我尝试过的是:
起作用的是:手动将代码从ext_library/source和ext_library/include复制到zephyr_project.中的适当文件夹中
附加信息:zephyr_project/zephyr/CMakeLists.txt (原始+尝试将ext_library添加为子目录)
cmake_minimum_required(VERSION 3.13.1)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(firmware)
set(EXT_LIB "C:/Users/mcelr/Desktop/project/ext_library")
add_subdirectory(${EXT_LIB} ${PROJECT_SOURCE_DIR})
FILE(GLOB app_sources
"../src/*.c*"
)ext_library/CMakeLists.txt (CMAKE_CURRENT_SOURCE_DIR在运行时确实指向正确的目录,通过已删除的消息(.)进行确认)(伐木)
cmake_minimum_required(VERSION 3.13.1)
project(ext_lib)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
set(LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build)
add_library(ext_lib_zephyr STATIC
${CMAKE_CURRENT_SOURCE_DIR}/source/packet.c
${CMAKE_CURRENT_SOURCE_DIR}/source/checksum.c
)非常感谢你对解决这个问题的任何建议或暗示,奥斯汀。
发布于 2020-12-01 01:23:22
我找到了解决办法:
cmake_minimum_required(VERSION 3.13.1)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(Project_work_queue)
SET(LIB_PATH ../../libs/)
FILE(GLOB lib_sources ${LIB_PATH}*.*)
FILE(COPY ${lib_sources} DESTINATION ../../../src/libs_tmp)
FILE(GLOB app_sources ../src/*.c*)
include_directories(${LIB_PATH})
target_sources(app PRIVATE
${app_sources}
)并在.gitignore中添加src/libs_tmp。我知道这是一种丑陋的方式,但它起作用了:
https://stackoverflow.com/questions/63508673
复制相似问题