编译 c++ 进入“真实”状态 程式
我知道如何使用 g++ 以及所有这些来编译 c++ 程序。 我的问题是,如果我有一些依赖于各种库的代码,我如何将其编译成一个可以发送给任何人的简单可执行文件。 为此,我很乐意将其保留在 os x 上。
我想知道如何编译一个“真正的”程序,而不仅仅是一个可以在本地运行的可执行文件。 我试过用谷歌搜索这个但没有找到太多。
我必须使用安装软件吗? 我知道在 Windows 中您可以使用常见的 DLL 文件制作一些简单的 .exe 文件。
I know how to use g++ and all that to compile c++ programs.
My question is, if I have some code which depends on various libraries, how can I compile it into a simple executable that I can send anyone. For this I would be happy with just keeping it on os x.
I would like to know how to compile a "real" program not just an executable I can run locally.
I have tried googling this but haven't found much.
Do I have to use installing software?
I know in windows you can make some simple .exe stuff that use common DLL files.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您正在寻找“静态链接”。 这会将所有需要的代码从库导入到您的可执行文件中。 请注意,可执行文件会变得更大。 如果您使用标准库,它们应该存在于标准操作系统安装中。
您应该尝试 g++ 的“-static”标志。
运行“ldd your_executable_name”应该显示可执行文件使用的所有库(动态链接)。
You a looking for "static linking". That will import all the needed code from the libraries into your executable. Note the executable will get larger. If you are using standard libraries, they should be present on standard OS installation.
You should try "-static" flag of g++.
Running "ldd your_executable_name" should display all libraries your executable uses (linked dynamically).
由于您正在谈论 Mac OS X,因此您可能想要制作一个捆绑包。 Qt Software 有一个非常有用的部署指南,用于入门这种活动。
Since you are talking about Mac OS X, you probably want to make a bundle. Qt Software has a very useful deployment guide for getting started with this kind of activity.
您可以在 gcc 或 g++ 中使用 -static 或 -s 选项进行静态链接
You can use -static or -s option for static linking in gcc or g++