草庐IT

CMAKE_C_COMPILER

全部标签

c++ - 是否可以将文件添加到 Visual Studio 中的 CMake 生成的解决方案文件夹中?

这个问题或多或少是这个问题的热身:howtogetcmaketoaddfilestomsvcssolutiontree它从来没有得到有效的答案,所以我想稍微改变一下:是否可以使用cmake2.8.3引入的cmake解决方案文件夹将文件直接添加到vs解决方案?我想做相当于VS->Solution->Add->ExistingItem的cmake。所以我的文件将出现在属于解决方案而不属于项目的文件夹中。我找到了如何使用解决方案文件夹将目标分组到文件夹中的示例,代码如下:set_property(GLOBALPROPERTYUSE_FOLDERSON)set_property(TARGET$

c++ - opencv ubuntu 12.04 Cmake错误: Source directory does not appear to contain CmakeLists. txt

我使用的是Ubuntu12.04。我试图使用http://karytech.blogspot.in/2012/05/opencv-24-on-ubuntu-1204.html中显示的步骤安装OpenCV但是当涉及到编译步骤时,我得到一个错误:clive@clive-Aspire-4755:~/OpenCV-2.4.0/build$cmake-DWITH_QT=ON-DWITH_XINE=ON-DWITH_OPENGL=ON-DWITH_TBB=ON-DBUILD_EXAMPLES=ON..CMakeError:Thesourcedirectory"/home/clive"doesnot

c++ - CMake "undefined reference to function"

我正在尝试使用CMake链接一个库(BNO055Driver)。由于BNO055驱动程序不使用CMake,并且大约一年没有更改,我决定只下载源文件并将它们放入我的项目中。然后我使用CMake创建一个库并链接它。问题是链接似乎不起作用。当我编译项目时,我得到一个undefinedreferenceto错误,其中是由BNO055驱动程序定义的函数。我是否错误地创建或链接了库?我是否需要做其他事情来定义这些功能?为了不粘贴200行代码,这里是一个简化的main.cpp产生与真实main.cpp相同的错误.如果你想看到真正的main.cpp按照下面的链接访问Github存储库#include"

c++ - 在 CMAKE 中正确设置 Visual Studio 链接器标志/SUBSYSTEM

我正在尝试使用cmake建立一个旧项目,我想保持所有标志与以前相同。旧项目生成器具有链接器标志/SUBSYSTEM,最小子系统版本号5.01设置如下:/SUBSYSTEM:WINDOWS,"5.01"我在cmake中尝试了同样的添加:set_target_properties(mytargetPROPERTIESLINK_FLAGS_RELEASE"/SUBSYSTEM:WINDOWS,\"5.01\"")但是结果是错误的。Cmake似乎删除了(转义的)双引号并将链接器标志放置到VisualStudio项目中的“添加选项”:/SUBSYSTEM:WINDOWS,5.01这样子系统标志就

c++ - 如何在 CMake 中检查 Windows 版本?

如何使用CMake检查我是否正在配置VisualStudio解决方案,例如Windows7还是Windows8?有什么办法吗? 最佳答案 您可以使用CMAKE_SYSTEM_NAME和CMAKE_SYSTEM_VERSION##CheckforWindows##if(WIN32)#trueifwindows(32and64bit)##CheckforVersion##if(${CMAKE_SYSTEM_VERSION}EQUAL6.1)#Windows7#Dosomethinghereelseif(${CMAKE_SYSTEM_VE

c++ - 如何使用 CMake 强制 C++ 编译器使用不同安装包的版本之一?

我机器上安装的ROS富尔特使用的是opencv2.2。我想用刚刚安装的2.4.9版本。它的位置是/home/polar/soft/lib/opencv/opencv-2.4.9/build/lib。请问如何用CMake做到这一点?根据我的搜索,find_library似乎可以解决问题,但无法使其正常工作。=====我像这样在我的cpp代码中包含opencv#include#include#include#include"opencv2/imgproc/imgproc.hpp"===========这是我的CMAKEcmake_minimum_required(VERSION2.8)in

c++ - 为什么library API + compiler ABI就足以保证不同版本gcc对象之间的兼容性?

我遇到过这样一种情况,我可能想将使用一个版本的gcc编译的C++共享对象库与一些将使用另一个版本的gcc编译的代码一起使用。特别是,我想使用返回一些STL容器的方法,例如std::string和std::map。gccwebsite许多旧的stackoverflow帖子(例如here)讨论了这个问题。我目前的理解是关于此问题的大部分关注和帖子都是关于.so文件和.dll文件之间的交叉兼容性。由于不同的编译器ABI,这非常困难。对于使用不同版本的gcc(至少gcc版本>=3.4)编译的.so文件之间的交叉兼容性,您需要确保标准库API没有改变(并且,如果它有,有dualABI支持)。我的

c++ - CMake:如何添加具有相对目录的 Boost.Test 用例?

我有一个使用CMake和Boost.Test的工作项目,其目录结构如下(请原谅ASCII艺术):+-proj|---CMakeLists.txt|---build|---test|\----dir1|\----foo.cpp//containsoneBOOST_AUTO_TEST_SUITEandseveralBOOST_AUTO_TEST_CASE||---bar.cpp//containsoneBOOST_AUTO_TEST_SUITEandseveralBOOST_AUTO_TEST_CASE\----dir2\----foo.cpp//containsoneBOOST_AUTO

c++ - CMake find_path 包含目录前缀

我正在为OpenNI编写一个最小的Find*.cmake。找到我写的头文件find_path(OPENNI_INCLUDE_PATHXnOS.h)按预期工作(OPENNI_INCLUDE_PATH的值为/usr/include/ni)。但是,在我的文件中,我必须包含标题#include我怎样才能去掉ni前缀,这样我就可以写了#include第一个包含的问题是包含了XnCppWrapper.h,并且此文件再次包含一些Xn*.hheader,但没有ni前缀。这会导致编译器错误。 最佳答案 总是有您用于find_path的路径匹配您的#i

c++ - DistCC 和 CMake - 在运行 make 时在本地和分布式构建之间进行选择

我的项目是使用CMake构建的,并使用DistCC+GCC编译。我按如下方式配置编译器:SET(CMAKE_C_COMPILER"distccvariation-of-gcc")要构建项目,我只需运行“cmake”,然后运行“ma​​ke-jXX”。虽然distcc确实加快了速度,但有时我想在没有分发的情况下构建-我希望它在机器上本地构建。我知道我可以修改DISTCC_HOSTS以仅包含本地主机-但这仍然有distcc网络的开销,尽管它比其他机器的开销更快...我也可以通过再次运行cmake并使用自定义标志修改CMAKE_C_COMPILER来实现。但我正在寻找一种方法,只需将标志直接