草庐IT

cmake_link_libraries

全部标签

c++ - 使用 cmake 和 visual studio 的一个解决方案中的多个项目

我有一个VisualStudio2010解决方案,其中包含5个项目、两个库和三个应用程序(依赖于库)。我现在想将构建系统迁移到CMake(以便也能够在Linux下编译)。我已经找到了如何为一个项目编写CMakeLists.txt并从中创建一个在VS中编译的.sln文件。但是,我找不到解决方案来在CMake文件中指定每个单独的项目,然后自动让CMake创建一个包含这5个项目的VS.sln。我必须如何构建我的项目和CMakelist才能完成此任务? 最佳答案 对于每个图书馆,请调用add_library,对于每个应用程序调用add_ex

c++ - cmake 将 header 包含到每个源文件中

我实际上有一个简单的问题,但找不到答案。也许你可以指出我的拷贝。所以,问题是:是否可以告诉cmake指示编译器在每个源文件的开头自动包含一些header,因此不需要放置#includefoo.h?谢谢! 最佳答案 CMake没有针对此特定用例的功能,但正如您所暗示的那样,GCC等编译器具有-include标志,就像有一个#在源文件中包含“foo.h”,并且由于CMake可以将参数传递给编译器,因此您可以通过add_definitions来完成。Thisanswer涵盖了GCC、Clang和MSVC的标志,应该涵盖很多基础。所以在CM

c++ - 使用 CMake 将编译器标志附加到文件

如何使用cmake向单个翻译单元添加编译器标志(我想附加它,而不是覆盖其他标志)?我试过set_source_files_properties(MyFile.cppPROPERTIESCMAKE_CXX_FLAGS"-msse4.1")但它不起作用..关于如何做到这一点有什么建议吗? 最佳答案 对于CMake3.0或更高版本,使用COMPILE_OPTIONS向单个翻译单元添加标志的属性,即:set_property(SOURCEMyFile.cppAPPENDPROPERTYCOMPILE_OPTIONS"-msse4.1")对于

c++ - 如何在 C/C++ 中以编程方式创建软链接(soft link)?

如何在C/C++中以编程方式创建软链接(softlink)?freebsd中的link()系统调用将创建一个硬链接(hardlink)。 最佳答案 你想要的系统调用是symlink(2).#includeintsymlink(constchar*name1,constchar*name2);Asymboliclinkname2iscreatedtoname1 关于c++-如何在C/C++中以编程方式创建软链接(softlink)?,我们在StackOverflow上找到一个类似的问题:

c++ - 头文件中的全局函数定义——如何避免重复符号链接(symbolic link)错误

我在仅header文件中有以下代码。#pragmaonceclasserror_code{public:unsigned__int64hi;unsigned__int64lo;};std::ostream&operator当项目中有2个cpp包含此头文件时,出现链接错误。errorLNK2005:"classerror_code__cdecloperator|(classerror_codeconst&,classViTrox::error_codeconst&)"(??U@@YA?AVerror_code@0@ABV10@0@Z)alreadydefinedinxxx.obj我知道我

c++ - 在CMake中如何包含项目的头文件

在C++项目中,我想将头文件设置为项目源目录的后代,而不使用UNIX目录快捷方式.或..。我不确定如何配置cmake来处理它。我有目录结构:Root|-include||-foo.h|-src||foo.cpp 最佳答案 放入root\CMakeList.txt:project(root)include_directories(${root_SOURCE_DIR}/include)...您可以在子项目的任何地方使用root_SOURCE_DIR。有关更多信息,请考虑访问http://www.cmake.org/Wiki/CMake_

c++ - CMake add_executable 目标名称已保留

我有以下CMakeLists.txt文件:CMAKE_MINIMUM_REQUIRED(VERSION3.1)PROJECT(MyProject)FILE(GLOB_RECURSEsourcesRELATIVE${CMAKE_CURRENT_SOURCE_DIR}${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)FILE(GLOB_RECURSEheadersRELATIVE${CMAKE_CURRENT_SOURCE_DIR}${CMAKE_CURRENT_SOURCE_DIR}/src/*.h)ADD_EXECUTABLE(AnyNameHere,${so

c++ - CMake 不适用于 OSX 上的 C++11

我刚刚升级到MountainLion,因此我可以在xcode附带的新版Clang上使用一些C++11功能。我正在使用来自Homebrew的cmake2.8.9。我做了一个非常简单的CMake项目,它为C++11添加了编译器标志:#CMakeLists.txtcmake_minimum_required(VERSION2.8)add_executable(testtest.cxx)add_definitions(-std=c++0x-stdlib=libc++)test.cxx中的C++代码如下:#includeintmain(){std::cout运行cmake和make时,文件编译正

c++ - 使用 CMake 设置应用程序图标

是否有跨平台的方法来使用CMake设置应用程序图标?我在Qt5.4中使用Cmake3.0.2。在Qt中documentation显示了一个方法,但它不是跨平台的。 最佳答案 CMake不会为您处理这个问题。在某些平台上有几个“应用程序图标”。例如,在遵循FreeDesktop.org标准的类UNIX系统上(基本上是您今天在Linux上可以看到的任何东西,无论是KDE、Gnome、Unity、XFCE还是其他一些DE-du-jour),这是完成的通过在应用程序的.desktop文件中设置适当的Icon条目。参见the.desktops

c++ - CMake 顶级 Xcode 项目属性

我在Xcode中使用Cmake来生成一个c++/c“项目”(my_project)和一些c++/c“目标”(一个是二进制文件,其余是库)我的CMakeLists.txt看起来像这样:project(my_project)add_subdirectory(library_projectA)add_subdirectory(library_projectB)add_subdirectory(binary_project)每个子目录都有一个CMakeLists.txt,其中包含:add_library(library_projectA)或者add_executable(binary_proj