将预建库包含到cmake项目中的最佳方法是什么?我想将FreeType包含到我正在处理的项目中,文件结构如下:BuildMacOSMake/XCode/WindowsVisualStudio/SourcelibsMacOSlibfreetypeWindowsfreetype.dllincludesfreetype/(Variousheaderfilesthatareincludedautomaticallybyftbuild.h)ftbuild.h(thisiswhatisincludedincodefrommyunderstanding.)MyProjectmain.cppfoo.c
对于以下3种编译情况:gcc-ohellochello.c(1)g++-ohellocpphello.cpp(2)c++-ohellocpphello.cpp(3)我如何知道每种情况下的“默认包含目录”、“默认链接目录”和“默认链接库”?我在32位Ubuntu11.04环境中使用gcc4.5.2。对于情况(1),gcc使用的是标准C库还是GNUC库?这两个C库之间有区别吗?比较情况(2)和(3),编译器使用的“默认链接库”有什么不同吗?他们使用的是标准C++库还是GNUC++库?这两个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(即
我正在按照说明here在Windows7上构建cling:mkdirbuildcdbuildcmake-DCMAKE_INSTALL_PREFIX=[InstallPath]..\srccmake--build.--config[Release/Debug]--targetcling我注意到编译器cmake使用的是VisualStudio122013(使用cmake-gui或在cmdline中),而我收到以下错误(fulltracebackishere):ConstructingLLVMBuildprojectinformationCMakeError:File/cygdrive/e/
我在头文件中定义了以下结构和结构对象,如下所示:structSTConfigurationDetails{boolbAutoStart;boolbAutoLog;boolbAutoScan;boolbAutoMount;boolbAutoOpen;boolbAutoDetectLast;};structSTConfigurationDetailsg_objConfigurationDetails;在自己的头文件中,我同时拥有使用g_objConfigurationDetails的方法和方法体。当我将头文件包含到另一个cpp文件并调用该方法时,这工作正常。但是当我将头文件添加到另一个cp
我在Windows764位上使用CMake(尽管我在32位中编译)。我正在尝试安装vxl库,当我运行CMake(从界面)时,出现以下错误:TheCcompileridentificationisunknownTheCXXcompileridentificationisunknownCheckifthesystemisbigendianSearching16bitintegerCMakeErroratC:/ProgramFiles(x86)/CMake2.8/share/cmake-2.8/Modules/TestBigEndian.cmake:44(message):nosuitabl