static-linking相关内容
我正在尝试将SDL2作为库添加到我的项目中。我想静态地链接它。我不熟悉C++。 1-为什么SDL网站建议尽可能动态链接? 我了解动态库的好处。然而,假设用户已经安装了您需要的所有库,并准备好在他们的系统中使用,这是一个相当大的假设。 对我来说,动态链接听起来是个好主意的唯一情况是,您使用的是操作系统/平台附带的众所周知的库。 https://wiki.libsdl.org/Instal
..
我已将问题简化为以下最小测试。c: #include "png.h" int function() { printf("%ld", (long)png_create_read_struct); } 使用 编译 gcc -shared -fPIC test.c -o test.so -lm -l:libpng16.a 显示错误 /usr/bin/ld: /usr/l
..
我使用CMake构建了一个由多个嵌套的静态库组成的项目。类似但简单的结构如下图所示: TestProject: |-CMakeLists.txt |-Main.cpp |-level2 | | - level2.cpp | | - level2.h | | - CMakeLists.txt | | - level1 | | |-level1.cpp |
..
我需要编写一个插件系统,与Linux上的静态链接模块一起工作。 我不希望核心(Main函数)显式调用模块的init函数。 我能想到的最接近的类比,就是我想要实现的东西,是Linux内核。 在那里,可以静态编译和链接未知数量的模块/插件,但模块的启动方式与动态加载时一样。 我有这个 core/main.c: int main(void) { return 0; } co
..
是否可以在visual studio MSVC项目中使用使用mingw编译的静电库?这两个项目都是C++。关于这个问题,我还没有找到明确的答案。请注意,我说的是静电库而不是动态链接库。 推荐答案 否,这是不可能的,因为ABIfor c++不是标准的,并且gcc的abi与MSVC++不同。
..
我可以从它的official code site下载&;安装Ubuntu中的WebRTC。现在,我打算在我们的服务器中使用它的某些C++API来创建P2P端点和加密/解密VoIP数据。但没有关于如何将该模块用作静电或动态链接库的指导原则。 问题:如何在C++中链接WebRTC库的[最好是最少]部分? 注意:我使用的是Qt平台。 推荐答案 链接到谷歌的WebRTC实现并非易
..
..
我试图让我的程序在另一台 libstdc++ 版本不同的机器上运行.我正在netbeans上开发和编译它.我已指定选项 -static-libstdc++ 但程序继续尝试在本地机器中加载 libstdc++.so.6. 如何获得完全静态的 libstdc++ 链接? 谢谢. 解决方案 我不确定这里的确切情况,但我刚刚在不同版本的 Mac OS X 和 gcc 中遇到了类似的问题
..
我是 OpenCV 的初学者,并尽我所能在嵌入式平台上运行一个简单的应用程序.我交叉编译了 OpenCV 2.4.4 并根据需要构建它 WITH_GTK=ON, WITH_UNICAP=ON, WITH_V4L=ON 以支持相机和 GUI.以下示例代码在主机上交叉编译: #include #include 使用命名空间简历;int m
..
我不得不承认,随着 iOS 8 的发布,我对 iOS 中的动态和静态框架有些困惑. 我正在寻找一种方法来分发我创建的库,并且我需要支持 iOS 7 及更高版本.(注意:这将是一个专有框架.我不能使用可可豆荚,也不能分发源代码).以下是我已经知道的: iOS 8 为 iOS 引入了“嵌入式框架",但据我了解,它们不适用于 iOS 7,仅适用于 iOS 8 及更高版本. 我可以选择将我的
..
我的 PyInstaller 规范: # -*- 模式:python -*-block_cipher = 无a = 分析(['test.py'],pathex=['C:\\Users\\admin\\compile'],二进制文件=[('C:\\Python361\\Lib\\site-packages\\PyQt5\\Qt\\plugins\\platforms\\qwindows.dll',
..
我正在尝试使用 Visual Studio 2010 链接 C++ 中的静态库.麻烦的是,库(和随附的标头)中有很多 MFC 对象.我想在不重新编译我的项目以包含 MFC 或重新编译库以不使用 MFC 的情况下调用库的函数之一.这篇 codeproject文章似乎暗示如果我这样做是可能的在我的项目中将函数定义为外部的(使用“extern"关键字). 但是,我没有运气.无论我尝试什么,我都会收
..
为什么有些静态库 (lib*.a) 可以像链接共享库 (lib*.so) 一样链接(ld -l 开关),而有些则不能? 我一直被教导所有的库,不管是不是静态的,都可以用 -l... 链接,但是到目前为止我遇到了一个库(GLFW),它除了喷出“未定义的引用"链接之外什么也没做如果我尝试以这种方式链接它,则会出错. 根据this question上的回复,“正确"的方式链接静态库是直接包含
..
我已经下载了 FreeImage 源代码并自己为 X64 MT DLL 进行了静态构建. 一切正常,除了当我在 freeimage.lib 文件中使用链接时,我收到很多烦人的链接器警告,我不太了解原因? 2>freeimage.lib(zutil.obj):警告 LNK4099:在“freeimage.lib(zutil.obj)"或“\bin\Release\vc100"中找不到 PDB
..
有什么好的方法可以制作小型的 haskell 可执行文件吗?使用 ghc6,一个简单的 hello world 程序似乎达到了大约 370kB(剥离前为 523kB).C 中的 Hello world 大约为 4kB(剥离前为 9kB). 解决方案 用GHC的开发分支(有谁知道具体是在哪个版本添加的?): $ ghc -o hello hello.hs$ strip -p --strip
..
全部. 我想链接一个调用 malloc() 函数的库.但是,我的目标环境是不同的malloc() 作为内联函数提供. 我怎样才能使库对 malloc() 的调用直接到我的目标环境的 malloc() 例程? 有什么办法可以改变导出的函数名吗?如果是这样我可以先编码 my_malloc() 并将其导出为 malloc() 并链接那个图书馆: #include
..
我正在尝试找到打包包含可选类(例如 ClassA)的静态库(我们称之为 Lib1)的最佳方法,该类本身需要第二个静态库 (Lib2).换句话说,只有在项目代码中引用了 ClassA 时才需要 Lib2.一切似乎都很好,除非在不使用 ClassA(因此不包括 Lib2)但需要 -ObjC 链接器标志(因为其他项目依赖项,不是我的)的项目中使用了 Lib1. 我正在尝试为以下三种情况提出一个简单
..
我使用 Openssl 用 C 和 C++ 编写了简单的应用程序.我这样编译它们: gcc openssltest.c -o openssltest -lcryptog++ openssltest.cpp -o openssltest -lcrypto 一切都好,但只有在您安装了 Openssl 时. 我想编译它,以便我可以在没有 Openssl 安装端的操作系统(类 linux 操作系
..
我需要将 glibc 静态链接到我的项目,因为目标平台只支持一个非常旧的平台(但它适用于我的工具链中的静态链接 glibc,我已经检查过了) 不幸的是,这个应用程序必须使用 pthread 库,但是静态链接的 libpthread 占用了太多空间. 我想静态链接glibc,动态pthread. 运行此命令后 powerpc-unknown-linux-gnu-gcc objec
..
我想控制在 CMake 中找到/链接到我的二进制文件的库的类型.最终目标是生成二进制文件“尽可能静态",即静态链接每个具有可用静态版本的库.这一点很重要,因为它将在测试期间实现跨不同系统的二进制文件的可移植性. ATM 这似乎很难实现,因为 FindXXX.cmake 包,或者更准确地说,当静态和动态都可用时,find_library 命令总是选择动态库. 非常欢迎提供有关如何实现此功
..