Mar*_*rco 2 c++ linux dll compilation gtkmm
我有使用gtkmm,gtkglextmm和exiv2的程序.
我希望将这些库包含在可执行文件中,因为如果用户在他/她的系统上没有这些库,该应用程序将无法运行.在Windows .dll文件解决了这个问题(我把它们放在与输出文件相同的目录中).
如何在Linux上附加类似的库?有什么工具可以帮助吗?我无法强制用户安装依赖项.
Dav*_*nan 10
Linux上的标准做法不是重新分发您的依赖项.这样做只会造成大量重复.您应该在安装包中指定依赖项,并让包管理器解析它们.
Bas*_*tch 10
更好的是,使用您想要定位的发行版的软件包系统,例如Debian/Ubuntu/Mint 上的.debaptitude软件包(使用或apt-get,它们自己使用dpkg),Redhat/Fedora 上的 Yum/Rpm 等。
DLL-s在 Linux 上被称为共享库(名为 的文件)(采用ELF格式,使用, ... 来探索它们并构建它们)。可以使用dlopen &以编程方式加载它们。请注意,Windows DLL-s 和 Linux *.so 之间存在重要差异(动态链接在 Windows 和 Linux 上具有不同的含义)*.soobjdumpnmgcc -fPIC -shareddlsym
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |