标签: static-libraries

发布模式静态库比调试模式版本大得多

今天我发现我正在处理的编译静态库在Release模式下比在Debug中大得多.我发现它非常令人惊讶,因为大部分时间恰好相反(据我所知).

调试模式下的大小略大于3 MB(这是一个相当大的项目),但在发布时它最多可达到6.5 MB.有人能告诉我这可能是什么原因吗?我正在使用静态库项目的常规Visual Studio(2008)设置,在构建配置设置中几乎没有更改.在发布时,我正在使用/ O2并且"赞成大小或速度"被设置为"不会"./ O2("最大化速度")是否会导致最终的.lib比包含所有调试信息的调试版本大得多?

编辑: 附加信息:
调试:
- 整个程序优化:否
- 启用功能级别链接:否

发布:
- 整个程序优化:启用链接时代码生成
- 启用功能级别链接:是

c++ static-libraries release-mode debug-mode

19
推荐指数
1
解决办法
5541
查看次数

我如何告诉cmake我希望我的项目静态链接库?

我正在尝试使用在Linux上运行的CMake构建一个基于OpenCV的项目.到目前为止,我的CMakeLists.txt文件看起来像

FIND_PACKAGE (OpenCV REQUIRED)
...
TARGET_LINK_LIBRARIES (my-executable ${OpenCV_LIBS})
Run Code Online (Sandbox Code Playgroud)

但这导致动态链接库.如何链接静态库?

linux opencv cmake static-libraries static-linking

19
推荐指数
4
解决办法
3万
查看次数

如何更新我们的静态库架构以支持arm64 Build?

几天前我创建的静态库(Universal)工作正常Xcode5.0 SDK7.更新Xcode5.1SDK7.1,如果我选择模拟器不起作用iPhone Retina(4-inch 64-bit).然后我将使用Bellow设置更改来更新我的lib.

在此输入图像描述

我为三个目标做同样的事情: -

在此输入图像描述

对于运动模拟器以及设备我把Universal lib和这个我运行脚本这个: - 在此输入图像描述

在此之后我再次构建lib并使用我之前完成的项目.但仍然遇到同样的问题iPhone Retina(4-inch 64-bit) Undefined symbols for architecture x86_64:


所以,我的问题是,为更新lib需要进行任何其他更改,或者我在上面的步骤中犯了任何错误.如果我错了,请告诉我.

更新我的静态库以进行支持需要进行哪些更改 64Bit architecture

注意:

我要求我自己创建的库更新.我没有使用第三方库. 更新

lipo -info testingLibImport/libLibNSlog.a在终端中使用了这个命令,输出是:

Architectures in the fat file: testingLibImport/libLibNSlog.a are: armv7 armv7s i386 arm64 
Run Code Online (Sandbox Code Playgroud)

static-libraries ios ios7 arm64 xcode5.1

19
推荐指数
3
解决办法
2万
查看次数

在QT Creator中构建时强制重新链接

问候,

我有一个子项目,它包含了几个库和一个主应用程序.当我在其中一个库中更改某些内容时,主应用程序不会与它们重新链接.当使用QT Creator时,是否有人有一个技巧可以让应用程序自动重新链接其静态链接的库?

-Dan O.

c++ linker qt static-libraries qt-creator

18
推荐指数
1
解决办法
4890
查看次数

在Xcode静态库中包含框架?

简而言之:

有没有办法在Xcode中创建静态库,以便当客户端链接到该库时,它们还链接到该库所依赖的框架?

问题:

我们有一个共享的Xcode项目,它包含多个包含所有常用代码的静态库目标.例如,如果项目想要使用共享网络代码,他们应该做的就是在我们的网络库中链接.

问题是库似乎并没有"包含"它们所依赖的框架.

例如,我们的Sound库使用AudioToolkit.framework.即使Sound库在其列表链接库中包含AudioToolbox.framework,客户端在与Sound链接时也会遇到链接器错误,如果它们也不直接与AudioToolkit.framework链接.

这是一个维护麻烦,因为每次库的框架依赖关系发生变化时,我们都会手动更改所有依赖项目中链接框架的列表.

这应该有用吗?有没有更好的办法?

谢谢!

iphone xcode frameworks shared-libraries static-libraries

18
推荐指数
1
解决办法
8138
查看次数

Xcode for iPhone中静态和动态库的区别

XCode中的静态库和动态库有什么区别?为什么Apple不允许我们在iOS应用程序中使用动态库?

iphone xcode static-libraries dynamic-library ios

18
推荐指数
2
解决办法
6980
查看次数

如何检查静态库以查看是否正在导出调试符号?

我有一个静态库,我正在调试模式下构建,但当我进入它时,我仍然得到反汇编.我想知道如何使用nm或其他工具来确保调试符号没有被剥离.

c c++ static-libraries debug-symbols

18
推荐指数
2
解决办法
1万
查看次数

将Swift静态库与Objective-C项目一起使用时会出错

我需要为我的要求制作swift静态库.我制作了swift静态库,它使用swift和Obj-c代码.我通过桥文件包含了Obj-c文件.我能够编译swift静态库而不会出现任何错误,并获取libMySwift.a文件.我使用Xcode9.3和Swift4来编译库.

我在obj-c项目中包含了libMySwift.a,还包含了obj-c兼容的头文件来访问项目中的lib.当我尝试编译项目时,它会给出以下警告和200多个错误.

Auto-Linking library not found for -lswiftSwiftOnoneSupport
Auto-Linking library not found for -lswiftCore
Auto-Linking library not found for -lswiftQuartzCore
Auto-Linking library not found for -lswiftCoreImage
Auto-Linking library not found for -lswiftCoreGraphics
Auto-Linking library not found for -lswiftObjectiveC
Auto-Linking library not found for -lswiftDispatch
Auto-Linking library not found for -lswiftMetal
Auto-Linking library not found for -lswiftFoundation
Auto-Linking library not found for -lswiftUIKit
Auto-Linking library not found for -lswiftDarwin
Auto-Linking library not found for -lswiftCoreFoundation
Run Code Online (Sandbox Code Playgroud)

如果我遗漏任何步骤或需要添加任何内容,请告诉我.

static-libraries ios swift swift4 xcode9.3

18
推荐指数
2
解决办法
6912
查看次数

如何创建静态库,并且可以在ios中的任何项目上添加.a文件

如何创建静态库,并且可以在ios中的任何项目上添加.a文件.

我试过这样做但是做不到.

提前致谢

xcode static-libraries objective-c++ ios4 ios

17
推荐指数
2
解决办法
5万
查看次数

建筑的未定义符号x86_64 - Mavericks(Yosemite,El Capitan ...)

编辑:

如果你落在这篇文章上,你可能想直接跳到答案


今天早上我发了一篇关于我的困惑的帖子

机器类型(C++ librairies):i386 vs x86_64

但我想我做错了不准确.所以我决定举一个我面对的情况的例子,我无法理解.

步骤1

我在机器A上构建了一个库,一个2岁的mac,OS x 10.7.5(我猜是64位;我的猜测基于你将在下面的附加信息中看到的命令)使用以下文件.

标题SimpleClass.hpp:

#ifndef SIMPLECLASS_HPP
#define SIMPLECLASS_HPP

class SimpleClass
{
public:
  SimpleClass();
  SimpleClass(const SimpleClass& orig);
  virtual ~SimpleClass();
private:

} ;

#endif  /* SIMPLECLASS_HPP */
Run Code Online (Sandbox Code Playgroud)

源文件SimpleClass.cpp:

#include "SimpleClass.h"
#include <iostream>

SimpleClass::SimpleClass()
{
  std::cout << "A new instance of Simple Class was created" << std::endl;
}

SimpleClass::SimpleClass(const SimpleClass& orig)
{
}

SimpleClass::~SimpleClass()
{
}
Run Code Online (Sandbox Code Playgroud)

我使用创建库

~/cpp_test$ clang++ -c -o SC.o -I SimpleClass.hpp SimpleClass.cpp

~/cpp_test$ ar rcs libtest_sc.a SC.o
Run Code Online (Sandbox Code Playgroud)

机器A的其他信息:

~/cpp_test$ clang++ --version …
Run Code Online (Sandbox Code Playgroud)

c++ macos linker static-libraries 32bit-64bit

17
推荐指数
1
解决办法
4万
查看次数