小编mad*_*lly的帖子

如果没有使用 LANGUAGE CXX set_source_files_properties,CMake 将无法构建

我制作了一个小型库(主要是下面一个更钝的库的包装器),我一直在包含的项目中编译和使用它,没有任何问题。我现在在另一个项目中使用这个库,并尝试适当地更改 CMakeLists.txt (见下文)。

cmake_minimum_required (VERSION 3.5)

set(project "foobar")

project(${project} LANGUAGES CXX)

set(${project}_VERSION_MAJOR 0)
set(${project}_VERSION_MINOR 1)

add_library(${project} SHARED
./driver/foo.h
./driver/foo.c
./bar.cpp
./bar.hpp)

set_source_files_properties(./driver/foo.c PROPERTIES LANGUAGE CXX)

target_compile_features(${project}
  PUBLIC
  cxx_std_11)

target_include_directories(${project} PUBLIC ./driver/ .)

 set_target_properties(${project} PROPERTIES LINKER_LANGUAGE CXX)

add_executable(bno055-test
./testingProject.cpp
)

target_link_libraries(test ${project})

install(
  TARGETS ${project}
  RUNTIME DESTINATION bin)
Run Code Online (Sandbox Code Playgroud)

我遇到的错误与该行有关set_source_files_properties(./driver/foo.c PROPERTIES LANGUAGE CXX)。当使用上面的 C++ 标志编译这个 C 文件时,我收到许多类型的警告clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]。这是预期的,因为我使用的是已弃用的方法,并且不应使用 C++ 标志编译此文件。但是,每当我删除这一行,或将其更改为指定 C 而不是 C++ 时,我的 …

c c++ linux cmake shared-libraries

1
推荐指数
1
解决办法
6003
查看次数

标签 统计

c ×1

c++ ×1

cmake ×1

linux ×1

shared-libraries ×1