草庐IT

cmake-modules

全部标签

c++ - CMake:如何更改子目录项目目标的属性?

我试图在我的子项目(在本例中为poco)中组织目标,但我发现无法为ALIAS目标修改属性。我希望我的外部项目中的目标位于它们自己的文件夹中,而不是散布在项目树中的任何地方(比如visualstudio生成器)。有没有更简单的方法来添加具有我自己的属性的项目?所以代替:-CMakePredefinedTargets-ALL_BUILD-INSTALL-...-MyTargets-SomeLibrary-SomeExe-CppUnit-Crypto-Data-...我要:-CMakePredefinedTargets-ALL_BUILD-INSTALL-...-MyTargets-Some

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++ - LNK1112 : module machine type 'x64' conflicts with target machine type 'X86' : Qt creator

我有一个在linux上运行的应用程序,我正试图将其导入到windows上。我已经设置了所有库并对.pro文件进行了更改。现在,当我尝试构建项目时出现此错误:error:LNK1112:modulemachinetype'x64'conflictswithtargetmachinetype'X86'我不确定是什么导致了这个问题。我正在使用32位Qtcreator。我知道有几个链接讨论了更改项目属性,但所有这些都与在VisualStudio中更改它们有关。我正在使用Qtcreator并通过QtUI运行项目。所以我不确定如果必须解决这个问题,必须通过Qt对项目属性进行哪些更改。

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++ - 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