草庐IT

c++ - 如何让 CMake 为目标安装 PDB 文件

如何让CMake安装调试VisualStudio生成的DLL文件和EXE文件所需的配套PDB文件? 最佳答案 我已经挣扎了一段时间,试图为这个问题找到一个好的答案。我现在想我找到了:使用带有$的安装文件命令生成器表达式(在CMake3.1.3和更新版本中可用)。具体来说,下面的安装命令似乎有效。该命令会将目标${PROJECT_NAME}pdb文件复制到目标的安装bin目录。install(FILES$DESTINATIONbinOPTIONAL)该命令将为生成pdb文件的每个配置安装pdb文件。通过使用OPTIONAL如果源pdb

c++ - CMake - 同一项目中的应用程序/库之间的依赖项( header )

我的项目结构如下:CMakeLists.txtlib1/CMakeLists.txt以及lib的所有cpp和头文件lib2/CMakeLists.txt和lib的所有cpp和头文件app/CMakeLists.txt以及应用的所有cpp和头文件主要的CMakeLists.txt看起来像:PROJECT(${PROJECT_NAME})add_subdirectory(lib1)add_subdirectory(lib2)add_subdirectory(app)lib1/CMakeLists.txt看起来像(已剥离):SET(SOURCEfile.cpp)SET(HEADERSsome

c++ - CMake - 同一项目中的应用程序/库之间的依赖项( header )

我的项目结构如下:CMakeLists.txtlib1/CMakeLists.txt以及lib的所有cpp和头文件lib2/CMakeLists.txt和lib的所有cpp和头文件app/CMakeLists.txt以及应用的所有cpp和头文件主要的CMakeLists.txt看起来像:PROJECT(${PROJECT_NAME})add_subdirectory(lib1)add_subdirectory(lib2)add_subdirectory(app)lib1/CMakeLists.txt看起来像(已剥离):SET(SOURCEfile.cpp)SET(HEADERSsome

c++ - 通过 CMake 在 Xcode 4.2 项目中使用 C++0x

我正在使用CMake在OSXLion上为Xcode4.2生成项目文件,并且我正在使用LLVM中的一些C++0x功能,例如nullptr和auto。为了使用这些,Xcode需要设置2个项目设置:C++语言方言设置为C++0x[-std=C++0x]C++标准库设置为libc++(支持C++'0X的LLVMC++标准库)目前每次生成Xcode项目,我都要进去手动调整这些设置。有没有办法在CMake中指定这些设置?谢谢 最佳答案 在深入研究后,这些是设置适当xcode设置的命令:set(CMAKE_XCODE_ATTRIBUTE_GCC_

c++ - 通过 CMake 在 Xcode 4.2 项目中使用 C++0x

我正在使用CMake在OSXLion上为Xcode4.2生成项目文件,并且我正在使用LLVM中的一些C++0x功能,例如nullptr和auto。为了使用这些,Xcode需要设置2个项目设置:C++语言方言设置为C++0x[-std=C++0x]C++标准库设置为libc++(支持C++'0X的LLVMC++标准库)目前每次生成Xcode项目,我都要进去手动调整这些设置。有没有办法在CMake中指定这些设置?谢谢 最佳答案 在深入研究后,这些是设置适当xcode设置的命令:set(CMAKE_XCODE_ATTRIBUTE_GCC_

c++ - 如何使用 cmake 为嵌套子目录设置 Visual Studio 过滤器

我有以下结构Main(dir)+--CMakeLists.txt+--File.cpp+--File.hpp+--Dir(dir)+--CMakeLists.txt+--File1.cpp+--File1.hpp+--File2.cpp+--File2.hppMain/CMakeLists.txtCMAKE_MINIMUM_REQUIRED(VERSION2.8.11)PROJECT(Main)FILE(GLOBSOURCE"*.hpp""*.cpp")ADD_SUBDIRECTORY(Dir)ADD_EXECUTABLE(Main${SOURCE})Main/Dir/CmakeLis

c++ - 如何使用 cmake 为嵌套子目录设置 Visual Studio 过滤器

我有以下结构Main(dir)+--CMakeLists.txt+--File.cpp+--File.hpp+--Dir(dir)+--CMakeLists.txt+--File1.cpp+--File1.hpp+--File2.cpp+--File2.hppMain/CMakeLists.txtCMAKE_MINIMUM_REQUIRED(VERSION2.8.11)PROJECT(Main)FILE(GLOBSOURCE"*.hpp""*.cpp")ADD_SUBDIRECTORY(Dir)ADD_EXECUTABLE(Main${SOURCE})Main/Dir/CmakeLis

c++ - CMake 找不到包含文件

我有一个布局如下的项目:/build/source+---CMakeLists.txt|+---/bin|+--CMakefiles.txt|+--main.cpp|+---/jsoncpp|+---/json||+--json.h||+--json-forwards.h|||+--jsoncpp.cpp|+--CMakeLists.txt|+---/jsonreader+--jsonreader.cpp+--jsonreader.h+--CMakeLists.txt在/source/CMakeLists.txt我有这行代码;include_directories(jsoncppjso

c++ - CMake 找不到包含文件

我有一个布局如下的项目:/build/source+---CMakeLists.txt|+---/bin|+--CMakefiles.txt|+--main.cpp|+---/jsoncpp|+---/json||+--json.h||+--json-forwards.h|||+--jsoncpp.cpp|+--CMakeLists.txt|+---/jsonreader+--jsonreader.cpp+--jsonreader.h+--CMakeLists.txt在/source/CMakeLists.txt我有这行代码;include_directories(jsoncppjso

c++ - CMake include_directories 和 add_subdirectory 之间的区别?

我正在学习CMake以构建C++代码,并在以下概念中苦苦挣扎。在我的根目录中,我有一些cpp文件和一个CMakeLists.txt,它成功地在gen-cpp目录中生成了一些Thrift代码。我的根级CMakeLists.txt包含:include_directories("路径到根目录"/gen-cpp)。(以及相关的Thrift自动生成和包含。一切编译正常,但我得到运行时动态库链接错误,因为undefinedsymbol引用了gen-cpp目录中定义的类。当我将目录中的文件移动到根级别时,它运行良好。我错过了什么?(我还调整了根级cpp目录中的#include以指向“path-to-