gpt4 book ai didi

build-process - 设置强大的中小型项目的教程 *nix build

转载 作者:行者123 更新时间:2023-12-02 15:55:50 25 4
gpt4 key购买 nike

我基本上是一个被宠坏的 Windows + Visual Studio(或过去的 Borland C++ 或其他)开发人员。虽然我第一次接触 Unix 是在大约 20 年前,并且断断续续地使用 Linux 已有几年,但我对如何在 *nix 系统上建立构建的了解非常有限。

例如,我对 make 的基础知识很熟悉 - 我可以获得许多文件来编译和链接。但我真的不知道如何进行设置以应对多种配置 - 如何让发布版本的所有对象文件和目标从调试版本转到不同的文件夹等。是的,我可以 RTFM 和即兴创作一些东西,但可以合理地猜测,我会即兴创作一些愚蠢的、过于复杂的、脆弱的和 WTF 的东西,如果我知道通用约定是什么,那么复制通用约定会更有意义。

此外,我可以运行一个配置脚本,并且我隐约意识到它们与 autoconf 相关联,无论是什么,但我不知道是否/为什么/如何在我的自己的项目。

希望这足以让我大致了解我正在寻找的内容。当然,我可以在这里提出/搜索具体问题,但前提是我知道所有要问的正确问题,而我几乎肯定不知道。那么 - 有什么指示吗?

编辑

只是想用一些长期经验来更新此内容。

我尝试使用 premake 一段时间,但从长远来看无法忍受。这背后很大程度上是对 Lua 的厌恶。

现在,我正在使用 cmake。它生成 makefile/Visual Studio 项目/其他内容。它(到目前为止)已经处理了我需要做的一切,包括对单元测试和自定义构建步骤的支持。当我习惯了 cmake 的做事方式时,我发现这是一个好方法,让我可以轻松地同时使用多组工具 - 我可以在 MinGW GCC 中检查测试覆盖率,同时在 Visual Studio 中进行调试。

当然,这表明我仍然主要在 Windows 中工作 - 但来回切换比以往任何时候都更容易。

cmake 的缺点...

  1. 虽然它生成 makefiles/无论什么,但它不能真正被视为 makefile 生成器。生成的 makefile 取决于安装的 cmake。说实话,我不太明白为什么他们不完全放弃 makefile 平台的 makefile,而是直接进行构建,稍微减少出现问题的可能性。
  2. 开始并不容易。

第二点已经通过在这里提出问题大部分得到解决...

最佳答案

对于较小的项目,我强烈建议使用 Make 的较新表亲之一,而不是 autoconf 或 makefile。最适合您的之一(也是我最喜欢的)可能是 premake4 。我为什么建议它?因为它使用极其简单,但功能相当强大,能够生成 GNU Makefile、Visual Studio 项目、Code::Blocks 项目等等。预制文件非常清晰易读,使用您已经熟悉的 Visual Studio 命名法。

这是一个例子:

-- A solution contains projects, and defines the available configurations
solution "MyApplication"
configurations { "Debug", "Release" }

-- A project defines one build target
project "MyApplication"
kind "ConsoleApp"
language "C++"
files { "inc/**.h", "src/**.cpp", "main.cpp" }

configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }

configuration "Release"
defines { "NDEBUG" }
flags { "Optimize" }

关于build-process - 设置强大的中小型项目的教程 *nix build,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1984092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com