静态链接库
Linking libraries statically
我必须编写一个程序,然后在超级计算机上运行,所以我得到了一个提示,我应该静态地链接我的库。
问题是当我链接
时g++ -o calcrank -llinbox -lgivaro -lgmp -lntl -static -static-libstdc++ -static-libgcc calcrank.cpp
/usr/bin/ld: cannot find -llinbox
/usr/bin/ld: cannot find -lgivaro
/usr/bin/ld: cannot find -lgmp
/usr/bin/ld: cannot find -lntl
collect2: error: ld returned 1 exit status
当然,我使用的所有库都只有*可用。所以用库代替static *。一个库。是否有一种方便的方法来转换*。所以库或任何建议如何继续获得一个独立的运行程序?
据我所知,没有简单的方法。
有一些用于"静态链接"共享库的工具:
- Statifier(开源)
- 银鼠(闭源、付费)
你应该问一下这个问题,也许你可以带上共享库,并在运行程序之前在脚本中设置环境变量LD_LIBRARY_PATH
指向你的共享库目录。
据我所知,Statifier对我不起作用。无执照的貂可能会给出一些警告和30天的限制信息。因此,为了在没有管理员权限的情况下跨Linux系统分发我的东西,我将所有需要的共享库收集到一个子目录中,编写了一个脚本来设置env变量并启动我的可执行文件。并以zip形式分发。
相关文章:
- 如果我想链接静态库并删除未使用的符号.txt我应该如何处理 Cmakelist
- 为什么当我在 C 程序中链接静态库时会"undefined symbol"?
- 强制链接静态库与 cmake 不起作用
- CMake 项目链接静态库
- 使用 CMake 在 Mac 上链接静态 GLFW 和 OpenGL
- DLL 链接静态库 - 未使用函数中未解析的链接器符号
- 如何使用 WAF 链接静态库?
- 无法在 Mac OS X 上链接静态资源库
- MAPI 链接静态库 (LNK2019: 未解析的外部符号)
- 为什么G 不链接静态程序
- 节点本机模块 - 链接静态库
- 在链接链接静态(GSOAP)库的共享库时,为什么会得到一个未定义的符号
- 链接静态和动态库时违反 ODR
- 代码中的MinGW::块不链接静态OpenSSL库
- Emscripten 链接静态库错误:wasm 流式编译失败:导入'env.getTempRet0'
- 如何正确链接静态类
- CMake 链接静态库和 glib 错误
- Eclipse CDT:如何在没有项目清理>>项目重建的情况下重新链接静态库
- 错误:链接静态库时出现";"
- gcc 如何链接静态库