问题标签 [static-libraries]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3173 浏览

linux - 编译包括非内核头文件的 linux 内核(2.6)模块

是否可以编译包含非内核定义的功能的 linux 内核(2.6)模块?

例如:


内核模块.h


生成文件

我编写并尝试编译的内核模块包含许多 openssl 包含文件中的功能。

上面介绍的标准 makefile 不允许包含在 linux 头文件之外。是否可以包含此功能,如果可以,请您指出正确的方向。

谢谢,迈克

0 投票
1 回答
925 浏览

c++ - 如何将 ActiveX(webbrower 托管)项目转换为静态库项目?

我有一个 ActiveX 组件,它包含一个用于访问特定 URL 的控件(嵌入在复合控件对话框窗格中的 webbrowser 控件)。ActiveX 组件访问 URL 可用于其他 MFC 或 VB 项目。用法是注册 ActiveX 组件(使用 regsvr32 cmd),然后使用“插入 ActiveX 控件”将控件插入到对话框窗口中。

现在我打算将 ActiveX 组件转换为具有相同浏览器窗口和 Web 访问功能的静态库。我想知道怎么做?此外,如何在其他 MFC 项目中使用浏览器窗口(在静态库中)。是通过函数调用吗?是否有可用的示例项目?

我使用 Microsoft .Net 2003 作为开发工具。

非常感谢您提前。

0 投票
5 回答
36830 浏览

macos - 如何在 OS X 上进行静态链接

我正在尝试链接到 OS X 上的静态库。我-static在 gcc 命令中使用了该标志,但收到以下错误消息:

我查看了手册页,内容如下:

除非所有库(包括 libgcc.a)也已使用 -static 编译,否则此选项在 Mac OS X 上不起作用。由于既没有提供静态版本的 libSystem.dylib 也没有提供 crt0.o,因此该选项对大多数人没有用处。

还有其他方法可以链接到这个静态库吗?

0 投票
6 回答
83925 浏览

c++ - 如何解决“错误 LNK2019:未解析的外部符号”?

我有我正在处理的这个 MFC 应用程序,它需要有一个嵌入式数据库。因此,我为它寻找一个光滑、快速的“可嵌入”数据库,并偶然发现了 SQLite。

我用它创建了一个数据库,并用 Visual Studio 2008 创建了一个静态库项目。该库项目将用于另一个主项目。

在库项目中,我创建了一个DBClass带有方法的类AddFeedToDB(CFeed f)。库项目使用.lib来自 codeproject ( cppsqlite3.lib) 的文件。

编译静态库时,没有检测到错误,但是当我尝试在主项目中使用库项目文件时,出现以下类型的错误:

我错过了什么?

0 投票
5 回答
975 浏览

c++ - 与 Sunstudio 的静态链接

我正在尝试将我的图书馆 xxx 链接到图书馆 yyy。我想静态链接,这样我在交付xxx时就不需要将yyy和xxx一起打包。我有第三方提供的两个版本的 yyy:libyyy.so 和 libyyyln.a。所以在这里我去链接-lyyyln。

链接时我没有收到任何错误消息。当我执行“ldd libxxx.so”时,对 yyyln 的依赖不会出现。但是“ldd -r libxxx.so”显示来自 yyy 的符号没有被解析。“nm libxxx.so”显示来自 yyy 的这些符号是 UNDEF。

那我错过了什么?

Edit1:我设法让它最终与“-l /fullpath/libyyyln.a”一起工作

0 投票
9 回答
189851 浏览

objective-c - 如何解决“发送到实例的无法识别的选择器”?

在 AppDelegate 中,我正在分配一个在静态库中定义的实例。这个实例有一个 NSString 属性设置了一个“副本”。当我访问此实例上的字符串属性时,应用程序因“发送到实例的无法识别的选择器”而崩溃。Xcode 为该属性提供了代码提示,这意味着它在调用应用程序中是已知的。特定类被编译到静态库目标中。我错过了什么?

添加一些代码。

在调用应用程序的 appDelegate 中。

应用程序中的其他类将获得对委托的引用并调用 classA.downloadUrl。

0 投票
4 回答
2765 浏览

c++ - 静态库中的对象注册

我已经实现了一个非常基本的“插件系统”作为静态库的一部分。每个“插件”都实现了对特定图像格式的支持,例如 GIF、JPEG 等。此外,我有一个 Singleton(一个名为 的类PluginManager),它保存所有可用插件的列表。

棘手的部分是我想通过在项目文件中添加或删除它们的源文件来禁用/启用插件。为了实现这一点,每个插件都会创建一个全局变量(具有不同的名称),并在该类的构造函数中将插件注册到PluginManager.

像这样的JPEG格式......

然而,虽然这在理论上可以完美运行,但在将此静态库链接到其他代码以构建可执行文件时它会失败。只要这个可执行文件不访问插件全局变量(如jpeg_instance),链接器就看不到连接(他完全忽略了构造函数的副作用)并且不包含最终可执行文件中的代码。换句话说,JPEG 插件在最终应用程序中不可用。

这些年来我遇到过几次问题,我总是在网上搜索解决方案。每次,我只找到基本上说这是一个已知问题并且我必须忍受它的页面。

但也许 SO 上的某个人知道如何使它工作?

0 投票
3 回答
7552 浏览

c++ - 减小 Qt GUI 应用程序的大小

我正在学习使用 Qt Creator 开发应用程序。我在 Windows 下构建了一个简单的应用程序,依赖于使用 mingwm10.dll、QtCore4.dll、QtGui4.dll、QtNetwork4.dll。在 QtQui4.dll 中,我只使用了几个小部件,不需要所有其他小部件......是否可以缩小 QtGui4.dll 的大小或做其他事情来减少应用程序的部署大小?静态链接呢?它会嵌入整个 dll,还是只嵌入其中的一部分?Qt是否可以静态链接一些dll和动态链接一些dll?

0 投票
5 回答
148788 浏览

dll - DLL 和 LIB 文件 - 什么以及为什么?

我对 DLL 和 LIB 知之甚少,除了它们包含程序正常运行所需的重要代码 - 库。但是为什么编译器会生成它们呢?将所有代码包含在一个可执行文件中不是更容易吗?DLL 和 LIB 之间有什么区别?

0 投票
1 回答
2075 浏览

gcc - 构建 R 包时如何链接静态库

我正在创建一个将由 R(统计程序)使用的包,我不是使用此应用程序的专家,但我设法使用以下逻辑创建了一个非常简单的包,我有一些类C++,因为代码必须使用 R 编译器编译并且它只允许 C 代码,所以我有一个调用 C++ 方法的包装 C 代码,后来我有一个调用 C 代码公开的方法的 R 脚本,所以基本上是像 R <-> C<->C++ 这样的通信。

在这里可以找到我用来创建此包的完整教程,我将其添加为参考。

现在我的问题是我需要向我已经创建的包添加一些功能,我需要做的是添加用于后期绑定到 COM 对象的代码,这是我创建的另一个产品并使用 regasm 工具注册。

这是我用来尝试后期绑定到 COM 对象的 c++ 代码,我正在尝试使用 IDispatch 来执行此操作:

我没有粘贴整个代码,因为只有这些行编译器已经给我带来了麻烦,我用来编译的命令是

其中“Cclass.cc”具有调用 C++ 方法的 C 代码,而“C++class.cc”实际上是 C++ 代码。

当我编译这些类时,编译器会说

p>

我确定我已经添加了我需要的所有头文件,这就是为什么我认为我的问题是我不包括静态库 ole32.lib 和 oleaut32.lib。

所以,我的问题是,我怎样才能包含这个库以便能够使用后期绑定的方法,比如 CLSIDFromProgID(...) 或 QueryInterface(...)。此外,如果有人认为我的问题不是链接这个库,而是其他东西,如果能指出我的问题可能是什么,那就太好了。

还请记住,我需要以一种可以通过 R 编译器毫无问题地编译它们的方式链接这些静态库,如果我没记错的话,它只是一个 c 编译器。