系列文章目录

前言

在使用krita源码编译时遇到报错:
这段代码是 Krita 源码中的一个 CMakeLists.txt 文件片段,用于配置 Krita 项目的构建系统。以下是对这段代码的解释:

find_package(Boost 1.65 REQUIRED COMPONENTS system):这一行指示 CMake 寻找并加载 Boost 库的配置信息,要求 Boost 版本至少为 1.65,且包含 “system” 组件。

set_package_properties(Boost PROPERTIES …):这一段设置 Boost 包的一些属性,包括描述、URL 和类型。这些属性通常在生成项目的包管理或其他元数据时使用。

target_link_libraries(Boost::boost …):将 Boost::boost 目标与其他目标链接。在这里,Boost::disable_autolinking 目标作为一个接口被添加,目的是禁用 Boost 的自动链接功能。

if(Boost_VERSION VERSION_LESS “1.81.0”):这是一个条件判断,检查 Boost 版本是否低于 1.81.0。

target_compile_definitions(Boost::boost …):这一段在条件满足(Boost 版本低于 1.81.0)时,为 Boost::boost 目标添加编译定义。这里定义了 BOOST_NO_CXX98_FUNCTION_BASE,意味着禁用 std::unary_function 的使用。这是因为 std::unary_function 在 C++17 中被弃用,并在某些编译器的 C++20 实现中被移除。

总之,这段代码负责在 Krita 项目中设置和配置 Boost 库的使用。

一、具体操作

在 Windows 10 下使用 MSYS2 和 MinGW64 编译 Krita 源码并生成头文件、静态库和动态连接库是可行的。以下是在 Windows 10 下使用 MSYS2 和 MinGW64 编译 Krita 源码的步骤:

安装 MSYS2:请访问 MSYS2 官网(https://www.msys2.org/)下载并安装 MSYS2。

打开 MSYS2,然后更新包管理器及其已安装的包。在 MSYS2 终端中运行以下命令:

Copy code
pacman -Syu
根据提示,重新启动 MSYS2 后,继续运行:

Copy code
pacman -Su
安装 MinGW64 及相关工具。在 MSYS2 终端中运行以下命令:
Copy code
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-qt5
将 MinGW64 的二进制文件添加到 PATH 环境变量中。在 MSYS2 终端中运行以下命令:
bash
Copy code
echo ‘export PATH=/mingw64/bin:$PATH’ >> ~/.bashrc
source ~/.bashrc
克隆 Krita 源码。在 MSYS2 终端中运行以下命令:
bash
Copy code
git clone https://invent.kde.org/graphics/krita.git
cd krita
创建一个构建目录并进入该目录:
bash
Copy code
mkdir build
cd build
使用 CMake 配置 Krita 项目。在 MSYS2 终端中运行以下命令:
mathematica
Copy code
cmake -G “MinGW Makefiles” -DCMAKE_BUILD_TYPE=Release …
编译 Krita。在 MSYS2 终端中运行以下命令:
go
Copy code
mingw32-make
完成以上步骤后,Krita 源码将被编译成头文件(.h)、静态库(.a)和动态连接库(.dll)。这些文件可以在构建目录(如:build)中找到。

请注意,这些步骤可能会随着 Krita 或 MSYS2 的更新而发生变化。请参考 Krita 官方文档或 MSYS2 文档以获得最新的编译指南。

二、使用步骤

在构建 Krita 时,您似乎遇到了一个编译错误。您可以尝试以下几个步骤来解决问题:

确保您安装了最新的依赖项和库。在这种情况下,问题似乎与 “lager” 库有关。请仔细检查您是否安装了正确的版本。如果没有,请将库更新到 Krita 所需的版本。

清理构建目录,然后再次尝试构建 Krita:

ruby
Copy code
$ mingw32-make clean
$ mingw32-make -j$(nproc)
如果错误仍然存在,可能与您尝试构建的特定 Krita 版本有关。您可以尝试切换到不同的分支或将本地仓库更新到最新版本:
ruby
Copy code
$ git checkout <branch_name>
$ git pull
然后,尝试再次构建 Krita。

mingw32-make -j$(nproc) 是一个在 Windows 上使用 MinGW 构建系统编译项目的命令。这个命令的具体含义如下:

mingw32-make:这是 MinGW 构建系统的 make 工具,用于在 Windows 系统上编译和构建项目。MinGW 提供了一套用于 Windows 的 GNU 编译器集合,使您能够在 Windows 上使用类似于 Linux 的开发工具链。

-j:这个选项告诉 make 工具在编译过程中并行执行多个任务。这可以显著减少构建时间,因为它允许您同时运行多个编译任务。

$(nproc):这是一个 shell 命令,用于返回系统上可用的逻辑处理器数量。在这个上下文中,它用于确定 make 工具应该使用多少个并行任务。使用 $(nproc) 作为参数可以使编译过程充分利用您的计算机的多核处理能力。

综上所述,mingw32-make -j$(nproc) 命令的意思是:使用 MinGW 构建系统在 Windows 上编译项目,并根据您计算机上可用的逻辑处理器数量并行执行多个任务以加快构建速度。

mingw32-make -j$(nproc) 命令含义-LMLPHP

mingw32-make -j$(nproc) 命令含义-LMLPHP
mingw32-make -j$(nproc) 命令含义-LMLPHP
mingw32-make -j$(nproc) 命令含义-LMLPHP

04-13 16:35