我目前正在开发一个 C++ 命令行实用程序,以作为开源实用程序在 Github 上分发。但是,我希望下载该程序的人能够以尽可能少的步骤在任何平台(特别是 Mac、Linux 和 Windows)上轻松编译和运行该程序。假设只需对代码进行少量更改以使其与各种独立于平台的 C++ 编译器(g++ 和 win32)兼容,我该怎么做?makefile 是否相关?
问问题
435 次
2 回答
2
我的建议是,不要使用 make 文件,为大型项目维护文件是乏味的,有时会发生错误,您不会立即发现(因为 *.o 文件仍然存在)。
在这里看到这个问题
于 2013-07-27T23:41:00.623 回答
0
Makefile 确实是高度相关的。您可能会发现(至少)需要两个不同的 makefile 来弥补您拥有不同编译器的事实。
很难具体说明如何解决这个问题,因为这取决于项目的复杂程度。编写脚本/批处理文件可能是最简单的,只需记录“在 Linux/Unix 上使用命令 build.sh,在 Windows 上使用 build.bat”) - 然后让各个文件处理,例如设置名称编译器和标志等
或者,您可以在 makefile 中包含一个包含内容,这由体系结构决定。或不同的makefile。
如果项目真的很简单,那么提供一个基本的 makefile 可能就足够了——但这不太可能,因为在 Linux/MacOS 上编译 x.cpp 会使目标文件称为 xo,在 Windows 上目标文件称为 x。对象。库有不同的名称,dll 有不同的名称,并且在 Linux/MacOS 上,最终的可执行文件(通常)没有扩展名,因此它被称为“myprog”,其中 Windows 下的可执行文件被称为“myprog.exe”。
这些差异意味着生成文件需要不同。
于 2013-07-27T23:27:52.010 回答