所以我有一个非常简单的 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 的指南 packaging和 pbuilder .
就个人而言,我从 Martin Krafft Debian book 那里学到了如何为我自己的项目(在 Debian 上)执行此操作, 并找到使用 yada大大简化了流程。
关于c++ - 编译 C++ 应用程序,以便它们也可以在其他计算机上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/534183/