问题标签 [cmake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
99495 浏览

cmake - 用 GLOB 指定源文件还是在 CMake 中单独指定每个文件更好?

CMake 提供了几种方法来指定目标的源文件。一种是使用通配符(文档),例如:

另一种方法是单独指定每个文件。

首选哪种方式?通配似乎很容易,但我听说它有一些缺点。

0 投票
2 回答
3579 浏览

cmake - CMake 中的 Makefile 等效项

我刚刚开始使用 CMake,不到一周。我写了一个 Makefile,我正在尝试在 CMake 中编写它的等价物。对于给定 Makefile 中的每个语句,我不知道应该在 CMake 中使用的命令。我该如何开始?有什么地方可以找到这方面的文档吗?

0 投票
3 回答
34302 浏览

c++ - 为什么不包含这个boost头文件

我正在 Mac 上使用 cmake 构建我的 c++ 程序。编译器给了我以下错误:

触发错误的行如下:

或者

我使用以上哪一项不会改变错误

但是在我的 CMakeLists.txt 中,我通过以下方式包含了 boost 标头:

Boost 包含目录在 cmake 过程中填充有“/opt/local/include/”,并且此文件夹包含一个文件夹 boost,其中包含 filesystem.hpp

Boost 在生成 Makefile 时给出以下消息,我只复制了 boost 部分:

运行时 make VERBOSE=1 此行包含错误:

你明白为什么编译器没有选择 /opt/local/include 目录吗?

如果您需要更多信息,我很乐意提供

0 投票
2 回答
48636 浏览

c++ - 如何使用 cmake 链接 boost.system

我使用 cmake 生成的 makefile 来编译依赖于 boost 文件系统库的 c++ 文件。

在链接过程中,我收到以下错误:

生成此错误的生成文件中的操作是这一行:

一些谷歌搜索告诉我,这个错误似乎在带有 boost 文件系统库的 mac 上很常见,因为我必须链接到 boost.system 库或使我的项目依赖于 boost.system 库。

如何在不硬编码库路径的情况下强制 cmake 链接库?

这是 otool 的结果:

0 投票
3 回答
2863 浏览

c++ - 多平台 C++ 项目:包含特定于平台的源

对于我的一些类,每个操作系统都有不同的实现。
我的源结构是这样的:

  • 包括/AExample.h
  • 包括/windows/WindowsExample.h
  • 包括/linux/LinuxExample.h
  • src/AExample.cpp
  • src/windows/WindowsExample.cpp
  • src/linux/LinuxExample.cpp

A* 类是特定实现的接口

我当前的构建系统是 cmake - 但目前它只能构建 linux 版本。

在 windows 构建中,我只需要包含 windows/* 文件,在 linux 上只需要包含 linux/* 文件

我需要

  • 仅包含与我当前构建相关的文件
  • 当我需要 AExample 的实例时选择正确的实现

您可以推荐哪些技术以专业的方式实现这一点?

0 投票
6 回答
8259 浏览

c++ - 在 Windows 和 Linux 上构建 C++

我参与了针对 Windows 和 Linux (RHEL) 平台的 C++ 项目。到目前为止,开发完全是在 Visual Studio 2008 上完成的。对于 Linux 编译,我们使用了第 3 方 Visual Studio 插件,它读取 VS 解决方案/perojects 文件并在 Linux 机器上远程编译。

最近决定放弃 3rd 方插件。

现在我最关心的是构建系统。我一直在寻找跨平台构建工具。这样我就不需要维护两组构建文件(例如 vcproj/solution for Windows 和 make files for Linux)。

我找到了以下候选人:斯康 B. 制作

您如何看待跨平台开发的工具?

还有一点让我感到困扰的是,如果没有 vcproj 文件,Visual Studio(+ Visual Assist)会失去很多功能——你如何使用这些工具来处理这个问题?

谢谢迪玛

PS 1:我喜欢 Scons 的一点是它(a)使用 python,因此它很灵活,而 cmake 使用专有语言(我知道它不是构建系统的赢家功能)(b)自包含(不需要在 Linux 上生成 makefile,就像使用 cmake 一样)。

那么为什么不是斯康斯呢?为什么在您的项目中决定使用 cmake?

0 投票
1 回答
2868 浏览

linux - QT_DIR 未找到

我正在尝试用 ITK 编译 Qt 4.5.2。我收到错误 QT_DIR not found。我从 Source 编译了 QT 4.5.2。ccmake 告诉包含 QTConfig.cmake 文件的目录是 QT_DIR。我无法在任何地方找到该文件。我错过了什么吗?

这是我在 CMake 中遇到的错误:

CMakeLists.txt:11 (FIND_PACKAGE) 处的 CMake 警告:找不到模块 FindQT.cmake 或包 QT 的配置文件。

调整 CMAKE_MODULE_PATH 以找到 FindQT.cmake 或将 QT_DIR 设置为包含 QT 的 CMake 配置文件的目录。该文件将具有以下名称之一:


我已将 PATH 设置为 CMAKE_MODULES_PATH 以查找 FindQT.cmake ...但我没有找到 QTConfig.cmake 为 QT_DIR 设置 PATH ...

请帮我解决这个问题..

感谢您。

0 投票
3 回答
1413 浏览

c++ - 使用 Visual Studio 2008 进行跨平台编译

鉴于:

  • 超过 500K LOC 的 C++ 代码库
  • 用于 Windows (Visual Studio 9 2008) 和 Linux (RHEL) 的基本代码相同

开发过程中最常见的任务当然是编辑/编译/修复(因此我们喜欢​​编程:))。我们的大多数开发人员都只有 Visual Studio 背景,恕我直言,它非常强大。

有没有办法从 VS 中远程在 Linux 机器上编译?

我找到了这个站点这个其他站点,但是 Visual Studio 9 2008 不支持 nmake,而我需要添加命令行以至少构建/重建和清理。我发现我可以将一个命令添加为预构建事件或外部工具(Menu->Tools->...)。但它只有 1 个命令,而我需要 3 个命令。

也许还有其他方法?

谢谢迪玛
_

0 投票
6 回答
3429 浏览

c# - 构建系统的选择?

我目前正在建立一个新的软件项目,我想要一个自动构建系统。该项目有相当复杂的涉及C、C#。它还必须使用外部工具 (SWIG) 生成自动绑定(Python、PHP、Java、Ruby 等)。

该项目应该能够在 Linux、Windows 和可能的 Mac OS X 中构建和运行。

我研究过 CMake、autotools 和 waf。有人有什么建议吗?

0 投票
2 回答
771 浏览

cmake - 如何配置cmake编译informix *.ec文件?

我刚刚找到 cmake,我想用它为一个使用 esql 编译器的小项目创建 make 文件。