首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ .exe的跨平台编译

C++ .exe的跨平台编译
EN

Software Engineering用户
提问于 2014-07-03 12:45:19
回答 4查看 1.1K关注 0票数 0

我被要求用C++11重写一个旧的C/C++项目,旧的项目是多平台的,但是为了在其他架构上部署系统,当前的过程是登录到一个拥有所有可用目标平台( remote、Umbuntu、Sco等)的远程服务。并在每个发布平台上构建.exe。

我是否可以向用户发送一个包,在他们的架构上进行自我编译,并在不提供源代码的情况下构建正确的.exe?

我也开放交叉编译,以避免不得不登录到不同的服务器,并为每个平台进行编译。使用交叉编译器为不同的体系结构编译代码有多容易?

EN

回答 4

Software Engineering用户

发布于 2014-07-03 13:04:35

不是的。没有源代码就无法编译源代码。

但是您可能可以在本地编译甚至交叉编译代码,并发送不同的已编译文件。

代码语言:javascript
复制
my_exe_rhel8
my_exe_ubuntu_x64

然后用户可以启动正确的。

理想情况下,您已经为这些系统打包了二进制文件,所以对于ubuntu,您应该准备一个.deb,一个红色帽子,一个rpm。这样,客户端就可以更容易地确保获得正确的版本、安装依赖项等等.

正如Btrfl所指出的,您可以使用VM轻松地创建一个安装程序,您可以在其中本地编译各自平台上的所有二进制文件。

票数 3
EN

Software Engineering用户

发布于 2014-07-03 14:22:36

我想您可以使用LLVM将源代码编译为字节码,然后使用它生成二进制文件,但是.这是很多未知的麻烦,因为它是很容易解决,通过改变你的立场如此轻微。

票数 2
EN

Software Engineering用户

发布于 2014-07-03 14:00:54

如果可执行文件不太大,可以将它们全部打包,然后分发一个安装程序来选择和安装正确的可执行文件吗?客户最终会得到每个平台的编译代码的版本,但是如果您只是将它们压缩到一个文件中,他们就不会知道有什么区别。当然,如果您有空间限制,这可能不起作用。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/246770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档