【发布时间】:2019-03-11 19:26:43
【问题描述】:
我正在编辑其他人制作的 CMakeLists.txt 文件。我正在尝试消除编译项目时产生的一些警告。
通常我只需添加 set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_FLAGS}") 和我需要添加的任何标志,它工作正常,但对于这个项目,它只是不工作。警告仍然出现。我尝试了几种替代方法,但没有任何效果。
可能导致问题的原因是什么?
cmake_minimum_required(VERSION 3.1)
project(PBS)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
option(LIBIGL_USE_STATIC_LIBRARY "Use libigl as static library" OFF)
option(LIBIGL_WITH_ANTTWEAKBAR "Use AntTweakBar" OFF)
option(LIBIGL_WITH_CGAL "Use CGAL" OFF)
option(LIBIGL_WITH_COMISO "Use CoMiso" OFF)
option(LIBIGL_WITH_CORK "Use Cork" OFF)
option(LIBIGL_WITH_EMBREE "Use Embree" OFF)
option(LIBIGL_WITH_LIM "Use LIM" OFF)
option(LIBIGL_WITH_MATLAB "Use Matlab" OFF)
option(LIBIGL_WITH_MOSEK "Use MOSEK" OFF)
option(LIBIGL_WITH_OPENGL "Use OpenGL" ON)
option(LIBIGL_WITH_OPENGL_GLFW "Use GLFW" ON)
option(LIBIGL_WITH_OPENGL_GLFW_IMGUI "Use ImGui" ON)
option(LIBIGL_WITH_PNG "Use PNG" OFF)
option(LIBIGL_WITH_PYTHON "Use Python" OFF)
option(LIBIGL_WITH_TETGEN "Use Tetgen" OFF)
option(LIBIGL_WITH_TRIANGLE "Use Triangle" OFF)
option(LIBIGL_WITH_VIEWER "Use OpenGL viewer" ON)
option(LIBIGL_WITH_XML "Use XML" OFF)
if (NOT LIBIGL_FOUND)
find_package(LIBIGL REQUIRED QUIET)
endif()
add_subdirectory(0_dummy)
add_subdirectory(1_cannonball)
add_subdirectory(2_spring)
add_subdirectory(3_spinning)
add_subdirectory(4_gyro)
# Custom commands
set( CMAKE_EXPORT_COMPILE_COMMANDS ON )
add_compile_options ( -Wno-reorder )
add_definitions ( -Wno-unknown-pragmas )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare")
编辑:
我发现在其中一个子目录中添加标志适用于该子目录(例如在3_spinning/CMakeLists.txt 中)。有没有办法全局设置标志?
【问题讨论】:
-
您正在尝试设置 3 个不同的编译器标志。哪个确切设置不起作用? (也就是说,您想要设置哪些标志来抑制警告?)
-
@Tsyvarev 所有三个。我正在尝试替代方法并设置不同的标志来查看哪个有效,但它们都不起作用。最后,我会添加所有三个。
-
好的,但是你写“我发现在其中一个子目录中添加标志适用于该子目录” - 在子目录中使用时设置标志的方式有效 ?
-
@Tsyvarev 我相信这三种方法都有效
标签: c++ cmake compilation