小编usr*_*567的帖子

在make的并行执行中警告"强制执行submake"

当我跑来make -j3并行构建时,我明白了

warning: -jN forced in submake: disabling jobserver mode.
Run Code Online (Sandbox Code Playgroud)

文档中我发现了警告

如果make检测到子系统可以通信的系统上与并行处理相关的错误条件.

这些错误情况是什么?我该怎么做才能治愈它们或抑制错误信息?

makefile是从CMake生成的,所以我不能(=我不想)编辑makefile.

parallel-processing makefile cmake

6
推荐指数
1
解决办法
3221
查看次数

将静态库与clang链接,不依赖于顺序

在GCC中,我可以使用链接器标志-Wl,--start-group-Wl,--end-group解决与具有循环依赖关系的库的链接问题.我想对clang做同样的事情,但似乎这个功能在lld 3.2版本中删除了.我该怎么做?

c++ clang static-linking lld

6
推荐指数
1
解决办法
5963
查看次数

如何使用Sphinx构建CMake文档?

在检查CMake源之后,我成功配置并构建了CMake.但是我如何构建CMake的文档?我安装了Sphinx.

没有目标make doc,我不得不调用哪个Sphinx命令.我没有在CMake Wiki或他们的邮件列表档案中找到任何提示.

documentation cmake python-sphinx

6
推荐指数
1
解决办法
1614
查看次数

使用 CMake 构建有什么好处?

我正在研究 SFML,我很好奇我可以自己编译它的选项。我在教程中找到了它,但从第一行开始我就感到困惑:

CMake 是一个开源元构建系统。它不是构建 SFML,而是构建构建 SFML 的内容:Visual Studio 解决方案...

  1. Visual Studio 中也有一个构建选项,该构建和 CMake 构建之间有什么区别吗?

  2. 它构建了构建 SFML 的内容,这意味着什么?是指库文件吗?

  3. 视觉工作室解决方案?这是什么意思?据我所知,当我打开一个新项目时,它位于一个解决方案中,我可以向该解决方案添加新项目(我很困惑为什么解决方案中也必须有多个项目!)。

CMake 构建解决方案意味着什么?它是做什么用的?

cmake visual-studio

6
推荐指数
2
解决办法
7640
查看次数

QQuick与CMake:样式不起作用

我愿意在Qt Quick Controls 2和C ++中的CMake项目中使用样式。而且我很难使颜色正确。

C ++,qml和样式代码来自qt博客,并且只要我使用.pro项目文件,它就可以正常工作,但是当我转向CMakeLists.txt时,我无法正确设置颜色(我相信它们是默认的颜色深色/紫色,而不是深色/橙色)。

.pro项目中,我的main.cpp如下所示:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickStyle>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);

    QQuickStyle::setStyle("Material");

    QQmlApplicationEngine engine;
    engine.load(QUrl(QLatin1String("qrc:/main.qml")));

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

我的qml.qrc文件看起来像这样:

<!DOCTYPE RCC>
<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
        <file>CustomLabel.qml</file>
        <file>PageBackground.qml</file>
        <file>SideBar.qml</file>
        <file>SideBarForm.ui.qml</file>
        <file>Light.qml</file>
        <file>LightForm.ui.qml</file>
        <file>Heating.qml</file>
        <file>HeatingForm.ui.qml</file>
        <file>Security.qml</file>
        <file>SecurityForm.ui.qml</file>
        <file>qtquickcontrols2.conf</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

和我的qtquickcontrols2.conf文件是这样的:

[Controls]
Style=Material

[Universal]
Theme=Dark
Accent=DeepOrange

[Material]
Theme=Dark
Accent=DeepOrange
Run Code Online (Sandbox Code Playgroud)

现在,我的CMake项目文件夹包含完全相同的文件(实际上是.pro项目文件夹的副本和粘贴),除了我删除了.pri.pro文件,现在它包含一个CMakeLists.txt …

cmake qtquickcontrols2

6
推荐指数
1
解决办法
2703
查看次数

CMake在makefile中更改颜色

CMake 生成的 make 文件具有彩色输出,以提高可读性。

是否可以更改颜色?我有一个绿色的终端字体,所以我有点松散指示对象已构建的消息的颜色。

makefile colors cmake

5
推荐指数
1
解决办法
1814
查看次数

摆脱 CMake CMP0063 警告

配置 CMake 项目时,我不断遇到此问题:

example/CMakeLists.txt:74 (ADD_EXECUTABLE) 处的 CMake 警告 (dev):
未设置策略 CMP0063:尊重所有目标类型的可见性属性。运行“cmake --help-policy CMP0063”以获取策略详细信息。使用 cmake_policy 命令设置策略并抑制此警告。


“EXECUTABLE”类型的目标“Protonect”为 CXX 设置了以下可见性属性:

CXX_VISIBILITY_PRESET
VISIBILITY_INLINES_HIDDEN
Run Code Online (Sandbox Code Playgroud)

为了兼容性,CMake 不会为此目标尊重它们。此警告是针对项目开发人员的。使用 -Wno-dev 来抑制它。

我知道我想打电话cmake_policy(SET CMP0063 NEW)- 我正在这样做,但我不确定我应该如何使用add_executable(Protonect).

visibility cmake deprecation-warning

5
推荐指数
1
解决办法
3600
查看次数

CMake找到不正确的OpenCV版本

我安装了多个版本的OpenCV,而CMake找到了错误的版本。我已经使用brew安装了opencv和opencv3,它们存在于以下路径中:

/usr/local/opt/opencv3
/usr/local/opt/opencv
Run Code Online (Sandbox Code Playgroud)

我的CMakeLists.txt如下所示:

cmake_minimum_required(VERSION 2.8)
set(ENV{OpenCV_DIR} "/usr/local/opt/opencv3")

project(TestProject)

#OpenCV
find_package( OpenCV 3 REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )

MESSAGE ( STATUS "Found OpenCV: ${OpenCV_VERSION}" )
MESSAGE ( STATUS "OpenCV_INCLUDE_DIRS= ${OpenCV_INCLUDE_DIRS}" )
MESSAGE ( STATUS "OpenCV_DIR= $ENV{OpenCV_DIR}" )
Run Code Online (Sandbox Code Playgroud)

我正在使用OpenCV_DIR指向我要使用的OpenCV的位置(在本示例中,它是在100%确定此变量指向正确位置之前立即设置的)。

我的输出是这样的:

-- Found OpenCV: 3.0.0
-- OpenCV_INCLUDE_DIRS= /usr/local/include/opencv
-- OpenCV_DIR= /usr/local/opt/opencv3
Run Code Online (Sandbox Code Playgroud)

因此,它正在查找正确版本的OpenCV(3.0.0),但是include路径设置为其他一些opencv,在这种情况下,/ usr / local / include / opencv指向/ usr / local / opt / opencv,即2.4.8版本。

结果,我的程序都找不到适合的文件!如果OpenCV_DIR环境变量似乎不起作用,是否有人知道如何告诉CMake寻找哪个版本?

macos cmake opencv3.0

5
推荐指数
1
解决办法
784
查看次数

检查像 AddressSanitizer 这样的消毒剂是否处于活动状态

我有几个版本的项目结帐和编译。如果我发现错误,我会比较版本以缩小问题范围。有时我会启用像 AddressSanitizer 这样的消毒剂。如果我重新使用一个可执行文件,我不记得它是否是用消毒剂编译的。如果可执行文件工作正常,我不确定该错误是否不存在,或者我是否没有在此版本中包含消毒剂。所以我必须重新配置和重建以确保我有消毒剂。

有没有办法检查可执行文件是否已使用消毒剂编译?

sanitizer

5
推荐指数
1
解决办法
3833
查看次数

如何避免在CLion中将每个源文件添加到CMake?

从一些其他具有构建单个文件选项的IDE切换的大多数人都对CLion感到有点困惑,而CLion似乎没有选择.

那么如何避免将每个源文件的每个名称都添加到CMake中?

clion

5
推荐指数
1
解决办法
1924
查看次数