我使用 CLion 和插件 Arduino 创建了一个 Arduino 项目库。 我试图包含以下目录以使用 C++ 标头。
我在 CMakeLists 中添加了这两行:
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
include_directories(${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES})
这里是完整的 CMakeList 文件:
cmake_minimum_required(VERSION 3.0.0)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/ArduinoToolchain.cmake)
set(CMAKE_CXX_STANDARD 11)
set(PROJECT_NAME MotorDriver8834)
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
set(${PROJECT_NAME}_BOARD uno)
# set(ARDUINO_CPU)
project(${PROJECT_NAME})
# Define additional source and header files or default arduino sketch files
# These files are now added to the sketch file, if the sketch is defined.
set(${PROJECT_NAME}_SRCS MotorDriver8834.cpp MotorDriver8834_Test.cpp)
set(${PROJECT_NAME}_HDRS MotorDriver8834.h)
### Additional static libraries to include in the target.
# set(${PROJECT_NAME}_LIBS)
### Main sketch file
# set(${PROJECT_NAME}_SKETCH MotorDriver8834.ino)
### Add project directories into the build
# add_subdirectory()
### Additional settings to add non-standard or your own Arduino libraries.
# For this example (libs will contain additional arduino libraries)
# An Arduino library my_lib will contain files in libs/my_lib/: my_lib.h, my_lib.cpp + any other cpp files
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/)
# This is no longer need but left in for those occasions where automatics do not work out.
# Current Arduino.cmake will recurse into any libraries which contain source files in src/ subdirectory.
# Files in subdirectories whose name starts with cmake-build or examples are excluded
# For nested library sources replace ${LIB_NAME} with library name for each library
# set(_RECURSE true)
#### Additional settings for programmer. From programmers.txt
# set(${PROJECT_NAME}_PROGRAMMER avrispmkii)
set(${PROJECT_NAME}_PORT /dev/ttyACM0)
set(uno.upload.speed 19200)
## Verbose build process
set(${PROJECT_NAME}_AFLAGS -v)
include_directories(${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES})
generate_arduino_firmware(${PROJECT_NAME})
print_board_list()
print_programmer_list()
不幸的是,它不起作用。我对 CMake 不太满意,所以我一直在寻找,但目前我没有解决方案。
例如,如果我在文件(cpp 或 hpp)中包含 cstdlib,我在编译时会出现以下错误(当然在编辑器 CLion 中指示 'cstdlib' 文件未找到): 致命错误:cstdlib:没有这样的文件或文件夹