首页 > TAG信息列表 > static-linking
强制动态链接库
我从彼得·范·德·林登(Peter Van Der Linden)的书(《专家C编程:深入C的秘密》)中学到,有一些特定的库是必须进行动态链接的;这些库是哪些,以及为什么要强制它们动态链接?(更具体地讲,在GNU / Linux系统)解决方法: Which are these libraries 所有UNIX系统都保证向后兼容;也就是说,使用Visual C Express 10链接到boost :: python
我已经在Windows下使用Visual C Express 2010构建了Python(3.2.1)和boost :: python(1_47_0).尽管boost :: filesystem可以正常工作,但boost :: python却没有(它们都需要链接到库)作为标题).我收到错误消息: 2>LINK : fatal error LNK1104: cannot open file 'boost_python-vc100-mC与静态lib中的std :: string相关的未定义符号
我通过在Linux中使用C将一堆代码与静态库(.a)链接来构建共享库.我有一个在静态库中定义的方法.当我使用nm -C打印该静态库中的符号时,它显示为: Alembic::AbcCoreFactory::v9::IFactory::getArchive(std::string const&, Alembic::AbcCoreFactory::v9::IFactory::CoreType&) 该符c-静态链接库时,出现链接器错误:找不到-lgcc_s
我想静态链接库说libcurl.由于静态库和共享库都在同一文件夹中,因此我在使用-Wl,-Bstatic来使链接程序知道使用静态库. g++ -o prog prog.o -Wl,-Bstatic -lcurl. 但是上面的命令给出了错误: /usr/bin/ld: cannot find -lgcc_s 如果我排除-Wl,-Bstatic,它可以正常工作,但是它将如何从C调用C编写的lib?
在我看来,这似乎是一个明智的选择,但我无法找到任何反对或为此的信息. 从demangling等的角度来看,我不认为这是一个大问题,但我无法弄清楚,我怎么能写一个小C程序从一个小小的C库调用一个函数. 我现在在linux上,尝试使用静态绑定. 这肯定是许多人遇到的事情或许多书籍所涵盖的事情,Android静态链接与针对glibc的动态链接
我一直在将一些Linux工具(以及我自己的一些C代码)交叉编译到Android,我面临的挑战之一就是Android的libc有一些丢失/剥离的组件,我最终修补了我的代码以使其能够与Android的libc(例如像这样的问题http://credentiality2.blogspot.com/2010/08/compile-ncurses-for-android.html) 问使用clang的静态链接libstdc
当我使用GCC时,我可以使用以下方法在我的Ubuntu 15.04上构建程序: -static-libgcc -static-libstdc++ 并且编译后的二进制文件可以在“库存”Ubuntu 14.04上运行而无需任何外部软件包,只有标准更新. 是否有可能使用这种静态链接到带有clang的库来构建? 最常见的答案: >使用测试ubuntc – Glibc的静态链接
我如何编译我的应用程序链接静态glibc库,但只有我的应用程序所需的代码? (不是所有的lib) 现在我的编译命令: g++ -o newserver test.cpp ... -lboost_system -lboost_thread -std=c++0x 谢谢!解决方法:这就是-static所做的事情(如另一个答案中所述):不需要的模块不会链接到您的程c – 包括具有一个头文件和单独源文件的特定于平台的库
我正在编写一个独立于平台的套接字库.基本文件结构如下: source directory |_________________________ | | | v v v header.hpp win32 linux | | v v soc – 链接cgo库中的第三方静态库
我有一个Go库,为COpenImageIO库提供绑定(OpenImageiGO).我一直很乐意通过标准动态链接到libOpenImageIO来构建我的绑定,但现在我正试图静态链接.我遇到了一个问题,无论我尝试哪种标志组合,外部链接器都会因大量“未定义的引用”错误而失败.我似乎记得在过去提到过这个问题,并说链接c – OSX:如何静态链接库并动态链接标准库?
如何指定clang静态链接某个库(在我的情况下是SDL2)并动态链接标准库? 使用-static并不好,因为链接器也试图静态链接标准库,这在OSX中是禁止的.另一方面,铿锵不知道-Wl,-Bstatic.解决方法:将静态库放在dir ./MyStaticLibs中,只需使用-L./MyStaticLibs/ -l< StaticLibraryName>. 编译c – Qt的.pro文件中的LIBS与PRE_TARGETDEPS
我是Qt&的新手开始欣赏qmake在.pro文件中提供的框架. 我的问题的主要目的是详细了解qmake变量“LIBS”和&之间的区别.带有静态链接库的“PRE_TARGETDEPS”. 我的Qt App使用了一堆依赖的C静态库.同样,静态库之间也存在相互依赖关系.每个库都包含一个.pro文件,以支持qmake构建方式.当c – 如何删除Qt库以删除我的应用程序未使用的内容?
我正在发布一个独立的Linux应用程序,其中编译了Qt库. 是否有一个工具可以扫描我的源代码,看看我的应用程序使用哪些类/方法,然后它会从Qt源代码中提取不必要/未使用的东西,并编译为我的应用程序量身定制的Qt库而不会有任何额外的膨胀?当然,这是最好的情况. 但是,最接近的现有解决方如何编译c程序,使其不依赖于任何库?
似乎一个hello world程序依赖于几个库: libc.so.6 => /lib64/libc.so.6 (0x00000034f4000000) /lib64/ld-linux-x86-64.so.2 (0x00000034f3c00000) 我如何静态链接所有东西?解决方法:链接-static. “在支持动态链接的系统上,这可以防止与共享库的链接.” 编辑:是的,这将增加可执行文Android应用程序(NDK)的poppler库可以代替xpdf吗?
我需要创建一个显示pdf文件的Android应用程序,我想使用xpdf或poppler库.这个问题只涉及这两个选择.我已经知道如何利用poppler-qt4所以我更喜欢使用它,但我担心用NDK编译它会产生一个巨大的二进制文件.这样对吗?我应该使用xpdf吗? 问题是:“如果我创建一个调用poppler-qt4方法的Androilinux – 在Ubuntu 11.10上构建的Haskell程序不能在Ubuntu 10.04上运行
我试图为我的程序的用户提供除了当前Windows之外的一些Linux二进制文件,所以我安装了Ubuntu 11.10(因为11.04上的haskell-platform软件包仍然是2010版本).但是,当我尝试在Ubuntu 10.04上运行生成的二进制文件时,我收到的消息是它找不到libgmp.so.10.检查/usr/lib显示10.04附带libgmlinux – 将静态库转换为动态链接库的方法
如果我所有的库都是* .a静态库.有没有办法可以将其转换为* .so动态链接库?也许用ld? 我正在使用SUSE Linux. ELF平台.解决方法:此命令将尝试执行您想要的操作: gcc -shared -Wl,--whole-archive library.a -o library.so 但是如果您的库没有使用-fpic / -fPIC编译,它可能不是,它将无