在 CLion Arduino 项目中包含外部目录

问题描述 投票:0回答:0

我使用 CLion 和插件 Arduino 创建了一个 Arduino 项目库。 我试图包含以下目录以使用 C++ 标头。

  • /usr/lib/gcc/x86_64-linux-gnu/11/include,
  • /usr/local/include,
  • /usr/include/x86_64-linux-gnu,
  • /usr/include.

我在 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:没有这样的文件或文件夹

c++ cmake arduino clion
© www.soinside.com 2019 - 2024. All rights reserved.