gcc - 如何在 CMake 项目中将全局文件扩展名 (*.pde) 添加到 GCC,它被视为 C++ 代码

标签 gcc cmake

我有一个非常简单的 CMake 脚本。不幸的是,该项目使用的是纯 C++ 或 C 代码的 *.pde 文件。

CMake 正在处理任何文件结尾,但我收到编译器错误,因为 GCC 不知道如何处理它。如何向 GCC 添加全局文件扩展名,以便将 *.pde 文件编译为通常的 *.cpp 文件?
-x c++ foo.pde如果我想使用控制台,命令很好,但对于 CMake,它(我认为)不适用。

cmake_minimum_required(VERSION 2.8)
project(RPiCopter)

SET( RPiCopter
  absdevice
  containers
  device
  exceptions
  navigation
  frame
  vehicle
  receiver
  scheduler
  tinycopter.pde
)

message( STATUS "Include ArduPilot library directories" )
foreach( DIR ${AP_List} ${AP_List_Linux} ${AP_Headers} )
  include_directories( "../libraries/${DIR}" )
endforeach()
include_directories( zserge-jsmn )

# ***************************************
# Build the firmware
# ***************************************
add_subdirectory ( zserge-jsmn )

#set(CMAKE_CXX_FLAGS "-x c++ *.pde")
ADD_EXECUTABLE ( RPiCopter ${RPiCopter} )
target_link_libraries ( RPiCopter -Wl,--start-group ${AP_List} ${AP_List_Linux} jsmn -Wl,--end-group )

最佳答案

您应该可以使用 set_source_files_properties 随着 LANGUAGE 将文件标记为 C++ 源的属性:

set_source_files_properties(${TheFiles} PROPERTIES LANGUAGE CXX)

正如@steveire 在他自己的回答中指出的,this bug将需要类似以下解决方法:

set_source_files_properties(${TheFiles} PROPERTIES LANGUAGE CXX)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
  add_definitions("-x c++")
endif()

关于gcc - 如何在 CMake 项目中将全局文件扩展名 (*.pde) 添加到 GCC,它被视为 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30556429/

相关文章:

c++ - 重载内置(固有?)功能

c++ - 使用 boost locale 将 wchar_t 转换为 char

c++ - ld : library not found for -lgcc_ext. 10.5

android - 如何使用 Gradle NDK build 为主机编译?

c++ - 即使库已链接,CMake 可执行链接器错误

c++ - 将简单类添加到库时出现 undefined reference 错误

c++ - 我的 CMakeList.txt 出了什么问题?

visual-studio-2010 - CMake 说 c 编译器坏了

c - GCC 中的链接错误 : selective static linking of libm. a

c++ - 如何在二进制文件中设置内置版本号?