草庐IT

Pythonlibs3 CMake 和 macOS

[更新2]以下两行,当添加到我的CMake文件中时,成功找到了python3及其库。这仅在终端中起作用的原因是因为CLion使用其捆绑版本的CMake(3.6.3),而我的终端使用的更新版本(3.7.2)正确找到了python。FIND_PACKAGE(PythonInterp3)FIND_PACKAGE(PythonLibs3)[更新]我让cmake文件可以工作,但是,当我从终端运行时它只找到python3库。从CLion运行时,出现以下错误:CMakeError:Thefollowingvariablesareusedinthisproject,buttheyaresettoNOT

CMake 中的 C++ 链接器标志

我正在编译C++程序并收到以下错误消息:undefinedreferenceto'pthread_mutexattr_init'undefinedreferenceto'dlopen'undefinedreferenceto'dlerror'undefinedreferenceto'dlsym'undefinedreferenceto'dlclose'为了解决pthread的错误,我将以下链接器标志添加到我的CMakeLists.txt。if(UNIX)set(CMAKE_CXX_FLAGS"-pthread")endif(UNIX)这解决了pthread错误。为了解决libdl错误,

c++ - cmake 引用了以下导入的目标,但丢失了

我有一个包含两个库(liba和libb)的存储库,而liba取决于libb。它们是单个存储库的一部分,并且是使用单个cmake“上下文”构建的。文件结构如下所示:├──CMakeLists.txt├──liba│├──CMakeLists.txt│├──internal││└──private.hh│├──module.cc│├──module.hh└──libb├──CMakeLists.txt├──other.cc└──other.hh一切都编译和安装没有任何问题。虽然,如果我尝试创建一个依赖于liba的新项目。像这样:cmake_minimum_required(VERSION3

c++ - 如何使用配置模式进行 find_package 搜索并在模块模式下进行回退?

当一个库使用CMake定义了一个构建并经历了为自己构建安装包的麻烦时,就会有一个XXXConfig.cmake。如果库无法将其目标导出到CMake,CMake会尝试通过提供试图找到此类库的FindXXX.cmake脚本来弥合差距。在文档中,首先尝试使用FindXXX.cmake(模块模式),只有在失败时才会尝试使用XXXConfig.cmake(配置模式).但这对我来说似乎真的很倒退。问题是,例如,我从源代码构建了CURL,ConfigXXX生成了与FindXXX不同的目标名称,因此,当尝试使用它时,它失败了,因为FindXXX负责find_package请求并加载了不同的目标名称超出

c++ - 组织测试项目和主要可执行文件 - C & C++

我有以下目录结构。root--src---testssrc包含应用程序的源文件和头文件(C文件)。构建此应用程序时,它会生成一个可执行文件。tests目录包含应用程序的单元测试用例(C++文件,使用UnitTest++作为测试框架)。在测试项目中,我可以从src目录中包含头文件,编译将通过。链接时出现问题。链接器将无法在源目录中找到目标文件。我该如何解决这个问题?在C和C++项目中,将一个可执行文件用于主应用程序而将另一个可执行文件用于测试的常规做法是什么,两者都需要相同的源文件才能使用?应用程序类型:跨平台。当前开发环境:Linux构建工具:CMake任何帮助都会很棒!

c++ - 使用 CMake 制作跨平台库?

CMake难用吗?我一直在使用Windows和MSVC++开发一个库。我在Linux和OSX中测试了我的代码,方法是从每个文件中繁琐地创建对象并从中创建一个库。我有几个目录例如:Agui->Widgets->Button->ListBox->Backends->Allegro我想要的是,例如,如果我在Windows上,它会自动生成一个msvc项目,其中包含所有这些目录和文件,并准备好进行编译。在Linux和OSX上我希望能够做类似的事情制作制作使用CMake可以做到这一点吗?考虑到我的情况,这很容易做到。谢谢 最佳答案 是的,这正是

为什么Cmake在QT创建者中过早结束?

我是QTCreator的新手,想将现有的CMAKE项目导入其中。我将cmakelists.txt文件作为一个项目加载,并且在运行cmake后,它像我希望的那样找到了我的文件。但是,当它构建时,它似乎在一秒钟后过早结束。这是日志:17:11:46:RunningstepsforprojectMy-GUI...17:11:46:Starting:"C:\ProgramFiles\JetBrains\CLion2017.1.3\bin\cmake\bin\cmake.exe"--build.--targetclean17:11:46:Starting:"C:\ProgramFiles\JetBrai

c++ - cmake os x 失败 ar 没有特定的存档成员

我有一个简单的cmake项目,我无法在OSX10.8.4上编译。cmake/make过程在Linux上运行良好,但在OSX上我收到此错误:LinkingCXXstaticlibrarylibImageFilter.aar:noarchivemembersspecified...make[2]:***[lib/libImageFilter.a]Error1make[1]:***[lib/CMakeFiles/ImageFilter.dir/all]Error2make:***[all]Error2我在两个平台上都使用EclipseCDT4GeneratorUnixMakeFile。这似乎

c++ - 在 ubuntu 12.04 上设置 Xerces 以与 cmake 和 clang 一起使用

我想在我的项目中使用Xerces,我在cmake和clang的帮助下编译了它。我所做的是:下载源将其解压缩到名为“xerces-c-3.1.1”的文件夹cd进入那个文件夹./configuremakemakeinstall然后我写了LINK_DIRECTORIES(/usr/local/lib)进入我的CMakeLists.txt和#include进入我的main.cpp。它编译正常,但链接不起作用。我得到以下结果:LinkingCXXexecutableDG5_RECMakeFiles/DG5_RE.dir/main.cpp.o:Infunction`xercesc_3_1::XML

c++ - 如何在 Windows 上备份 cmake gui 的生成器缓存/设置?

我们正在为opencv开发一个内部使用的模块,我们不希望将完整的opencvcheckinTFS。有什么方法可以保存cmakegui应用程序的所有设置,例如当新开发人员加入团队时,他可以轻松地下载opencv并包含用于生成解决方案文件的设置? 最佳答案 在您的构建目录中有一个CMakeCache.txt文件。它存储在gui应用程序中更改的值。如果将其复制到新构建并重新加载缓存,设置应该会恢复并且您可以生成构建文件。 关于c++-如何在Windows上备份cmakegui的生成器缓存/设置