Tag: cmake

如何创建inheritance自Release的CMake配置类型

此答案描述了如何从头开始创建自定义配置类型。 如何创建与内置Release完全匹配的配置类型,仅添加一些标记? 我现在正在使用它: set(CMAKE_CONFIGURATION_TYPES “Debug;Release;ReleaseWithAssertions” CACHE STRING “Available build-types: Debug, Release and ReleaseWithAssertions”) set(CMAKE_CXX_FLAGS_RELEASEWITHASSERTIONS “${CMAKE_CXX_FLAGS_RELEASE} -DENABLE_ASSERTIONS=1”) 这似乎做我想要的,但我只是复制CMAKE_CXX_FLAGS_RELEASE的值,所以我想知道用户可能期望有什么我想念的东西吗?

在multithreading应用程序中使用libmysqlclient

我正在Linux平台上构建一个C应用程序。 我需要使用libmysqlclient来连接数据库。 我下载了Linux源代码包mysql-connector-c-6.0.2.tar.gz。 我按照说明编译了它。 我得到以下库: libmysqlclient.a libmysqlclient.so libmysql.so.16 libmysqlclient_r.so libmysql.so libmysql.so.16.0.0 如果我的应用程序是multithreading的,我可以将我的应用程序与libmysqlclient.a链接吗? 根据mysql文档( http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide ),使用cmake工具,客户端始终是线程安全的。 在将我的应用程序与libmysqlclient.a链接后,我的应用程序崩溃了以下调用堆栈: #0 0x0867878a in my_stat () No symbol table info available. #1 0x08671611 in init_available_charsets.clone.0 () No symbol table info available. #2 0x086720d5 in get_charset_by_csname () No symbol table info available. #3 0x086522af in mysql_init_character_set () No symbol table info […]

QtCreator CMake项目 – 如何显示所有项目文件

我使用QtCreator打开CMake项目。 除了CMakeLists.txt之外的一些目录仅包含头文件* .h,对于那些目录,项目树视图中的QtCreator仅显示CMakeLists.txt。 如何解决? 我需要查看来自QtCreator的所有项目文件。

CMake生成器表达式,区分C / C ++代码

我想将-std=c++11添加到我的 add_compile_options(“-std=c++11”) 但是,这也将它们添加到C文件的编译中,而不仅仅是C ++ 。 我知道我可以根据使用的配置添加条件编译标志: add_compile_options(“$<$:-addMeInDebugOnly>”) 如何将我的标志仅添加到c ++文件中? 我正在寻找类似的东西: add_compile_options(“$<$:-std=c++11>”) 但是我需要填写问号呢?

CMake导入的库行为

我和CMake有一个奇怪的问题。 我正在将Curl导入到我的项目中,所以我为您编写了一个简单的CMakeLists.txt文件摘要。 ADD_LIBRARY(libcurl SHARED IMPORTED) SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib) 当我运行CMake时,它会为MS VC ++生成项目文件(也适用于Linux)。 然后进入项目文件,我发现curl库( libcurl-NOTFOUND )的错误引用! 如果我将我的代码更改为静态导入: ADD_LIBRARY(libcurl STATIC IMPORTED) SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib) 我找到了对../lib/libcurl.lib的正确引用。 你知道为什么会这样吗? 非常感谢你!

调用always_inline’_mm_mullo_epi32’时内联失败:目标特定选项不匹配

我正在尝试使用使用SIMD内在函数的cmake编译C程序。 当我尝试编译它时,我得到两个错误 / usr / lib / gcc / x86_64-linux-gnu / 5 / include / smmintrin.h :326:1:错误:内联调用always_inline’_mm_mullo_epi32’失败:目标特定选项不匹配_mm_mullo_epi32(__ m128i __X,__ m128i __Y) / usr / lib / gcc / x86_64-linux-gnu / 5 / include / tmmintrin.h :136:1:错误:内联调用always_inline’_mm_shuffle_epi8’失败:目标特定选项不匹配_mm_shuffle_epi8(__ m128i __X,__ m128i __Y) 这个问题已经通过设置在这里解决了StackOverflow set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -msse4.1”) 我尝试了相同的和许多其他选项。 但我的项目仍然无法编译。 set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -msse4.1”) set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -sse4_1”) set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -march=nehalem”) […]

cmake包含每个源文件的标头

我实际上有一个简单的问题,但找不到答案。 也许你可以指点我一式两份。 所以,问题是:是否可以告诉cmake指示编译器在每个源文件的开头自动包含一些头文件,因此不需要放入#include foo.h? 谢谢!

cmake错误:配置文件出错。 项目文件可能无效

我是cmake的新手。 我写了一个简单的cmake文件并在cmake GUI中运行它。 但它显示如下 配置文件出错。 项目文件可能无效。 然后显示 CMake错误:C上的cmake代码出错:/home/temp/Tutorial/CMakeLists.txt:1:解析错误。 预计换行,得到带有文本“项目”的标识符。 配置不完整,发生错误! 我的CmakeList.txt有以下内容: cmake_minimum_required (VERSION 2.6) project (Tutorial) add_executable (Tutorial Tutorial.c) 请帮我。

为MacOSX构建,但链接针对iOS模拟器文件构建的dylib

我刚刚使用2013年4月15日的命令行工具升级到Xcode 5 beta,并在标准CMakeTestCCompiler.cmake尝试编译简单测试程序期间运行cmake构建时发出以下警告: cmake -version cmake version 2.8.11.2 ld: building for MacOSX, but linking against dylib built for iOS Simulator file ‘/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/usr/lib/libSystem.dylib’ for architecture i386 lipo -info /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/usr/lib/libSystem.dylib Non-fat file: libSystem.dylib is architecture: i386 编译步骤是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -o /Users/temp/testCCompiler.co -c /Users/temp/testCCompiler.c lipo -info /Users/temp/testCCompiler.co Non-fat file: testCCompiler.co is architecture: i386 链接步骤是: /usr/local/bin/cmake […]

Windows中CMake的默认生成器是什么?

在一台PC上运行CMake时,CMake默认生成NMake文件。 另一方面,它生成一个Visual Studio项目。 我知道我可以通过在我的CMake语句的末尾添加-G “NMake Makefiles”来覆盖默认值,但我想知道为什么它默认为一个上的Visual Studio项目和另一个上的NMake文件。