我看了这篇文章:UsingCMaketostaticallylinktoalibraryoutsideoftheproject.但我仍然无法理解这意味着什么:add_subdirectory(/path/to/the/library/source/directorysubproject/grzeslib)我假设“/path/to/the/library/source/directory”是指来自硬盘的路径,但我不明白“subproject/grzeslib”是什么意思。现在我尝试了:include_directories(../path/to/dir)add_subdirectory(
我有一个具有以下文件结构的项目:project||------->lib1||---->lib1.h||------->lib2||---->lib2.h||------->main.cclib1和lib2两个库只包含头文件,而lib2.h包含lib1.h,main.cc包含lib2.h。我现在如何编写这个项目的cmake文件?我试图创建一个interfacelibrary对于lib2,但编译器找不到lib1.h。以下是我的cmake文件的内容:lib2的CMakeLists.txt:add_library(lib2INTERFACE)target_sources(lib2INTERF
将预建库包含到cmake项目中的最佳方法是什么?我想将FreeType包含到我正在处理的项目中,文件结构如下:BuildMacOSMake/XCode/WindowsVisualStudio/SourcelibsMacOSlibfreetypeWindowsfreetype.dllincludesfreetype/(Variousheaderfilesthatareincludedautomaticallybyftbuild.h)ftbuild.h(thisiswhatisincludedincodefrommyunderstanding.)MyProjectmain.cppfoo.c
我只找到了这个字符串find_library(WSOCK32_LIBRARYwsock32)find_library(WS2_32_LIBRARYws2_32)(我是cmake的初学者)如何在cmake中链接winsock2(winsock?)? 最佳答案 因为它们都是WindowsSDK的一部分,所以您不需要搜索它们。假设您安装了SDK,您可以执行以下操作:add_executable(MyExemain.cpp)if(WIN32)target_link_libraries(MyExewsock32ws2_32)endif()
我正在开发一个C++项目,该项目将包含在一个更大的项目中。我已经看到在更大的项目中(是一个Qt应用程序,它是从qmake生成的)我能够从linux命令行编译单个文件,只需输入特定文件的相对路径作为参数制作。另一方面,我在自己的项目中使用CMake。当我修改一个编译单元的一些代码时,我必须修改它的头文件,我必须等待很长时间才能编译它的依赖项,然后再编译它自己的源文件。但在某些情况下,我更愿意检查*.cc文件中的源代码是否可无错编译。有没有办法像qmake那样从CMake生成Makefile?切换到qmake不再是一种选择。 最佳答案
我对这个CMakeLists.txt文件有问题:cmake_minimum_required(VERSION2.6)SET(CMAKE_C_COMPILERC:\\MinGW\\bin\\gcc)SET(CMAKE_CXX_COMPILERC:\\MinGW\\bin\\g++)project(cmake_test)add_executable(a.exetest.cpp)调用cmake使用:cmake-G"MinGWMakefiles"我得到:c:\cmake_test>cmake-G"MinGWMakefiles".--TheCcompileridentificationisGNU
我正在尝试使用我自己的cmake文件而不是它附带的qmake.pro文件从Qt编译录音机示例,但我收到以下错误:qtaudiorecorder\audiorecorder.h(63):错误C2146:语法错误:在标识符“插槽”之前缺少“:”我的CMake文件:find_package(Qt5REQUIREDCOMPONENTSmultimediawidgets)set(CMAKE_AUTOMOCON)set(CMAKE_INCLUDE_CURRENT_DIRON)find_package(Qt5WidgetsREQUIRED)find_package(Qt5MultimediaREQU
我想在Linux、OSX和Windows上分发C/C++项目的可执行文件和库。什么是首选的CPack生成器,即哪些可能可供大多数用户使用?在Windows上似乎只有NSIS,但在Linux和OSX上有几种选择。顺便说一句,源代码分发也是如此,所以理论上所有平台的用户都应该能够自己编译代码,但为了方便起见,我们希望提供预编译的二进制文件。 最佳答案 每个不同平台上都有多种常见做法。哪一种最适合您取决于多种因素,但以下内容至少应该有助于在CMake/CPack直接支持的更流行的格式中进行选择。我假设您正在通过CMake使用CPack(即
我必须构建一个将一种文件格式转换为另一种文件格式的应用程序。所以在程序开始时,它会弹出一个文件选择器对话框,用户可以在其中选择要转换的文件,然后它会弹出一个保存文件对话框,用户可以在其中选择保存转换后的文件的位置。要求:没有安装。可作为.exe分发(XP及更高版本)。.exe的文件大小不应太大(尽可能小于1MB)。我想要一些高级语言功能来进行转换。一些GUI功能。这是一个非常具体的用例,但总的来说,将语言/框架/运行时结合起来会很好,您可以在其中快速制作原型(prototype),然后轻松地分发它。我一直在寻找,但没有太大的成功。有人有想法吗? 最佳答案
我正在按照说明here在Windows7上构建cling:mkdirbuildcdbuildcmake-DCMAKE_INSTALL_PREFIX=[InstallPath]..\srccmake--build.--config[Release/Debug]--targetcling我注意到编译器cmake使用的是VisualStudio122013(使用cmake-gui或在cmdline中),而我收到以下错误(fulltracebackishere):ConstructingLLVMBuildprojectinformationCMakeError:File/cygdrive/e/