实际上,我需要在 Windows/Linux 平台下为不同的语言构建二进制文件 - Java、Pascal(Delphi/FPC)、C++、C# 等。
如何做到这一点?我现在正在为 C 项目使用 CMake,如下所示:
cmake --build .
提供 CMakeLists.txt
。
最佳答案
每个 *make
系统都不适用于 Java 项目,因为 make
基本上假设“一个文件输入,一个文件输出”之一(例如 .c
到 .o
)或“N 个文件输入,一个文件输出”(例如 *.o
到 .a
之一,.dll
, .exe
)。使用这些“原语”执行构建。
但 Java 编译器本质上要求“输入完整的源代码树,输出完整的类树”。
这两个范式不匹配,尝试这样做迟早会引入比其值(value)更多的小问题。去过也做过。
您能做的最好的事情就是从顶层 Makefile 中调用 Ant 或 Maven(或其他)。
编辑:不要忘记另外两件事:
使用
make
编译 Java 内容是一门黑暗、神秘的艺术。您不会发现很多人同时了解 Java 和 make,并且可以使用这种组合来解决问题。 Ant/Maven 和Java 是一个标准的组合。通过这种组合,可以轻松找到帮助或建议。许多 Java 框架需要特殊的编译步骤。在几乎所有情况下,都有可用的 Ant 和 Maven 插件。使用 make 你将不得不每次都重新发明轮子。
关于java - 非 C 项目的跨平台自动构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8560444/