c++ - 编译 C++ 应用程序,以便它们也可以在其他计算机上工作

标签 c++ deployment gcc compilation sdl

所以我有一个非常简单的 SDL 应用程序,我希望能够将其传递给我的 friend ,而无需他下载一大堆 SDL 包。

我该怎么做?我被告知使用这一行来编译: (请注意,我使用 ubuntu linux,我的 friend 也是,而且这个应用程序在没有“-Wl,-Bstatic”选项的情况下编译和运行也很好。)

    g++ test-sdl.cpp -o test-sdl -Wl,-Bstatic -lSDL_image -lSDL

但是我得到了这个错误:

    /usr/bin/ld: cannot find -lgcc_s  
    collect2: ld returned 1 exit status

为什么会出现这个错误?我如何解决它?我什至必须这样做吗?有不同/更简单/替代的方法吗?

我的要求是否是为了让我的 friend 省去下载他可能永远不会使用的软件包的麻烦?

谢谢。

最佳答案

从长远来看,你最好的选择是弄清楚如何构建 .debs,然后你 friend 的系统的包管理可以负责安装所有需要的依赖项。如果您想更广泛地分发包,按预期使用平台的 native 打包系统将为您和您的用户省去很多麻烦。

看看 Ubuntu 的指南 packagingpbuilder .

就个人而言,我从 Martin Krafft Debian book 那里学到了如何为我自己的项目(在 Debian 上)执行此操作, 并找到使用 yada大大简化了流程。

关于c++ - 编译 C++ 应用程序,以便它们也可以在其他计算机上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/534183/

相关文章:

c++ - 尽管我已经初始化了这个链表,但链表指向 NULL

ios - 在开发设备上部署 iOS 应用程序是否有效?

c++ - gcc6.x 中的 constexpr 优化错误?

c++ - C++ 中的稀疏数组

c++ - 类似的函数peek(); (来自 C++)在 Ruby 中

java - 需要将同一个应用程序部署到多个上下文,每个上下文都有不同的数据库 Tomcat7

c# - 如何防止应用程序被标记为可疑

c - MingW 下更改字符串中的字符时出现段错误

mysql - 如何使用 mysql 连接器创建共享对象库 (*.so)?

c++ - 将类成员更改为引用会导致崩溃