static-libraries相关内容
假设我在静态库中有一个单例类S,它可以与其他动态库d1、d2、d3链接, 因此,据我所知,类S在每个d1、d2和d3中都有一个单独的实例,即使它不是单例(如全局)也是如此 有没有办法防止S类的多个副本? 我无法将单例%S放入其他动态库中。 Executable / | D
..
我想把我用C/C++(LINUX环境GCC/g++编译器)写的项目作为共享库/静态库分享,而不是真正分享源代码。这样其他用户就可以在不知道我的源代码的情况下使用我的项目。谁能告诉我如何以.so/.a格式共享它? 假设我的项目如下: main.cpp, Source1.cpp, Source2.cpp, Source3.cpp, head1.h, 生成文件 如何通过隐藏文件Sour
..
我知道如何使用和创建它们,但我找不到关于它是如何实现的、函数调用是如何发生的等等的文本,有人可以帮助我了解这些信息吗?因为我想了解它们,而不仅仅是知道它是什么以及它是如何工作的 推荐答案 您可能知道,当您编译一个源文件时,您会得到一个目标文件。根据您的平台,它的扩展名可能是.o、.obj或其他任何文件。静态库基本上是目标文件的集合,有点像.Zip文件,但可能没有压缩。当尝试生成可执行文
..
背景 我正在构建一个iOS应用程序(我将在这里将其称为MyApp),它将依赖于几个单独的静态库(我将称为Lib1、Lib2、Lib3、...)所完成的计算。每个库都构建在它自己的项目中,然后导入到单个工作区(因此工作区将包含MyApp、Lib1、Lib2、...)。有关如何设置的更多详细信息here。这些库被独立于MyApp的其他产品使用,所以我希望最小化这些库中的任何更改。这些库也是用(纯)C
..
我已将问题简化为以下最小测试。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 |
..
我有几个关于GCC链接顺序的问题。GCC说,默认情况下,链接器从左到右搜索符号,不重复搜索。这是我的测试: main.c #include #include int main() { printf("HELLO WROLD "); return 0; } printf.c #include
..
这个问题可能部分重复,例如this question,但更多的是关于如果有更好的解决方案的话是什么。由于此问题结束时相当长,我用";+q+ 标记了特定问题。 我有这样的情况,我写了一个小库B,它依赖于其他一些大型项目A拆分成许多库A1, A2, ..., An,我的库有一些依赖于这些库,另一些不依赖于这些库。做正确的链接有点麻烦。这个库开始被其他人使用,我想避免每个人都经历这个糟糕的链
..
简写: 如何将std::string(由.cpp函数使用桥接从.SWIFT文件调用返回的对象)转换为SWIFTString? 长版本: 我有一个用C++编写的库,我必须使用Swift调用一些代码。我创建了一个桥,在我的Xcode项目中添加了两个文件: 桥头,允许SWIFT调用C函数(AFAIK SWIFT不能直接调用C++函数,需要通过C函数传递) //file br
..
我尝试打包我的应用程序并静态链接所有库。但我得到了这个错误。Makefile如下所示: CC = gcc INCPATH = -I/home/johnny/Application/FileBasedReG/include/RealityGrid LIBS = -L/home/johnny/Application/FileBasedReG/lib/Rea
..
我们有一个用C/C++编写的应用程序,它被分成单个EXE和多个DLL。这些DLL中的每个都使用相同的静态库(utilities.lib)。 实用程序静态库中的任何全局变量在运行时实际上都会在应用程序中拥有多个实例。utilities.lib已链接到的每个模块(即DLL或EXE)都有一个全局变量副本。 (这都是众所周知的,而且很好,但是有必要回顾一下静态库在DLL上下文中的行为背景。) 现
..
我需要编写一个插件系统,与Linux上的静态链接模块一起工作。 我不希望核心(Main函数)显式调用模块的init函数。 我能想到的最接近的类比,就是我想要实现的东西,是Linux内核。 在那里,可以静态编译和链接未知数量的模块/插件,但模块的启动方式与动态加载时一样。 我有这个 core/main.c: int main(void) { return 0; } co
..
我的公司销售依赖于NVIDIA CUDA工具包的商业Linux应用程序。然而,我们的许多客户在他们的计算机上没有超级用户访问权限,并且无法自己安装CUDA,因此我们希望将CUDA静态库与我们的应用程序捆绑在一起。 我们的法律部门表示,我们需要实际将库的内容包含在我们应用程序的一个现有静态库中,而不是仅将CUDA静态库作为单独的文件提供。我可以手动创建这样一个合并库,它工作得很好: li
..
我正在处理一些作为静态库发布的嵌入式代码。我们希望从库中删除所有内部符号,并仅使API符号可见。 下面是我们要做的一个示例:假设您有一个名为internal.c的文件和一个名为api.c的文件,如下所示: /* internal.c */ int fibonacci(int n) { /* Compute the nth Fibonacci number and return
..
是否可以在visual studio MSVC项目中使用使用mingw编译的静电库?这两个项目都是C++。关于这个问题,我还没有找到明确的答案。请注意,我说的是静电库而不是动态链接库。 推荐答案 否,这是不可能的,因为ABIfor c++不是标准的,并且gcc的abi与MSVC++不同。
..
我尝试了这个问题中的方法, 但是 ar 的 linux 版本似乎与 mac 版本不一样,因为我未能再次合并目标文件. 我基本上想做的是通过运行脚本构建阶段将另一个静态库合并到我的 Xcode 静态库构建产品中. 很遗憾,我无法将其他库直接编译到我的项目中,因为它有自己的构建系统(因此我使用编译后的库). 我认为应该可以通过 ar 将其他库合并到 Xcode 生成的库中,而无需反编
..
我升级了 Xcode 版本,当使用外部静态库时,我收到以下消息: ld:文件是通用的(3 个切片)但不包含 a(n) armv7s 切片:/file/location for architecture armv7sclang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) 如果库的开发者还没有更新他们的库,有没有办法绕过这个并添加对库的支持? 解决方案 如果你想取
..
..
我正在尝试为 android 编译一个简单的 C 库,但生成的库不包含任何符号/对象!我正在使用 nm 命令检查库. 这是 Android.mk: LOCAL_PATH := $(call my-dir)包括 $(CLEAR_VARS)LOCAL_MODULE := my_lib_staticLOCAL_MODULE_FILENAME := libmylibLOCAL_C_INCLUDES
..
现在我在 Android Studio 3.2 中创建了一个包含 c++ 支持的新项目,它自然具有 native-lib.cpp,CMakeLists.txt 如下所示: add_library( # 设置库的名称.本机库# 将库设置为共享库.共享# 提供源文件的相对路径.src/main/cpp/native-lib.cpp) 现在如果我构建这个项目,我可以在一些“调试"目录中找到 libn
..