标签: static-libraries

Solaris上的静态代码?

题:

  • 为什么/usr/lib/*.aSolaris 10中删除了静态库?
  • 因此,它是不是可以生成静态链接的对象?
    • 动态链接编译,是唯一的选择吗?

static-libraries solaris-10

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

.h文件在静态库中的意义是什么?

我是一个新的iOS开发人员.我有一个非常基本的怀疑.我在许多地方读过,我们需要发送我们的.h文件以及静态库的.a文件.

而.a文件是编译库,具有完整的实现,开发人员无法自己阅读,只是为了安全保护实现者代码.

我们需要.h文件来了解可用的公共功能.但是为什么Xcode不能解码.a文件并直接使用它而不是发送另一个.h文件.Xcode不需要向开发人员展示.a实现,而是可以向开发人员提供公开可用的方法.

我没有看到苹果没有这样做的任何合理原因.我相信运送.h文件肯定有充分理由.我想知道可能是什么原因?

macos static-libraries ios

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

在linux上构建静态c ++库 - 我是否需要链接到其他库?

我一直在Linux上构建一个静态库.到目前为止,它纯粹是自包含的,内部的所有代码都不使用标准库以外的任何代码.我最近做了一个更改,现在一些编译单元正在使用boost代码.我一直在使用以下内容构建库:

g++ -c -Wall -pedantic  *.cpp
ar -cvq libbfclass.a *.o
Run Code Online (Sandbox Code Playgroud)

我的问题是:我是否有必要调整此方法来处理新库的使用,或者在构建使用我自己的库的可执行文件时是否需要提供链接库?从我的理解,静态库基本上只是一个目标文件的存档,但我想知道我是否需要修改我的构建脚本,以使一切正常工作,或者只有在构建可执行文件时才需要?

c++ linux linker g++ static-libraries

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

IOS目标链接可可堆栈库,其中库编写了C++ 11标准错误

我正在研究一个项目,它是一个cocoa静态库,它使用了由其他人编写的C++库.这个C++库使用了C++ 11和libc ++(支持C++ 11的LLVM C++标准库).

我成功构建了可可库,但是当我在App中链接这个库时(只需在"Link Binary with Libraries"中添加链接).

发生错误,这是错误日志:

"non-virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:


  "non-virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:


  "non-virtual thunk to std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:


  "non-virtual thunk to std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:


  "non-virtual thunk to std::__1::basic_istream<wchar_t, std::__1::char_traits<wchar_t> >::~basic_istream()", referenced from:


  "non-virtual thunk to std::__1::basic_istream<wchar_t, std::__1::char_traits<wchar_t> >::~basic_istream()", referenced from:


  "non-virtual thunk to std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:


  "non-virtual thunk to std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:


  "non-virtual thunk to std::__1::basic_ostream<wchar_t, std::__1::char_traits<wchar_t> >::~basic_ostream()", …
Run Code Online (Sandbox Code Playgroud)

c++ xcodebuild static-libraries ios c++11

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

在XCode单视图编译期间获取体系结构i386的未定义符号

我有一个静态库X,它在C中.我有另一个静态库Y,它在目标C中,其.mm文件引用了库X的功能.现在在单个视图应用程序中我使用了库Y.但是在编译期间它发表错误说

Undefined symbols for architecture i386:
  "encode()", referenced from:
      _playMediaInternal in libXMedia.a(XMediaInternal.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

上面的编码函数存在于库X中,库Y正在使用它,单视图应用程序使用它.有什么建议 ?我在同一条线上看过其他查询,但没有运气.另一个线程链接

从Apple开发者网站我一直在尝试使用静态库链接.

我已将手机连接到Laptoop并已开始编译.它仍然给我错误.现在我觉得它与链接本身而不是架构有关

xcode objective-c static-libraries ios

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

可以有一个C++ GUI静态库吗?但不是.dll?

是的,我想知道有类似的东西吗?通常情况下,静态库将基于控制台,但我需要的是一个GUI库,用于假设HelloWorld MessageBoxhelloworld() func在控制台应用程序中调用.

直截了当,我需要在控制台应用程序中集成一个GUI库(可能是插件 - 如果插件是一个.dll正确吗?好吧).

我试过看,Qt4 Plugin creation但我认为它仅适用于基于Qt的应用程序?请提供我的要求的任何链接.谢谢 ...

c++ user-interface qt static-libraries

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

Lipo从终端工作,但是bash脚本拒绝了许可

如果我在终端(在OSX Mavericks上)运行它,它可以正常工作:

lipo -create /Release-iphoneos/libMyNewLibrary.a /Release-iphonesimulator/libMyNewLibrary.a -output /Merged/libMyNewLibrary.a
Run Code Online (Sandbox Code Playgroud)

在终端中运行时我没有使用sudo.如果我将完全相同的代码添加到bash脚本,我会收到以下错误:

致命错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:无法创建临时输出文件:/ libMyNewLibrary.a.lipo(Pe​​rmission denied)

其余的bash脚本运行正常(使用xcodebuild生成ios和sim库),所以我不确定为什么lipo命令失败.要合并的2个库都存在于fato调用afaik之前(我看到这个错误的唯一帖子表明这可能是原因).

是否需要采取另一个步骤才能从bash脚本中使用lipo?

static-libraries ios lipo

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

无法编译libcurl的静态库

我一直在互联网上阅读并尝试过许多方法,但仍然似乎找不到问题。我正在尝试将libcurl用作静态lib,但这是我的编译器所说的:

1> libcurl.lib(cookie.obj):错误LNK2001:无法解析的外部符号__imp__fgets 1> libcurl.lib(netrc.obj):错误LNK2001:无法解析的外部符号__imp__fgets 1> libcurl.lib(cookie.obj):错误LNK2001:未解析的外部符号__imp__fputs 1> libcurl.lib(ftp.obj):错误LNK2001:未解析的外部符号__imp____stdio_common_vsscanf 1> libcurl.lib(rtsp.obj):错误LNK2001:未解析的外部符号__imp____stdio_common_vsscanf 1> libcurl。 :错误LNK2001:无法解析的外部符号__imp____stdio_common_vsscanf 1> libcurl.lib(http_proxy.obj):错误LNK2001:无法解析的外部符号__imp____stdio_common_vsscanf

等等..

我已经将CURL_STATICLIB添加到预处理器,甚至与以下库链接:libcurl.lib openssl.lib,libssh2.lib,zlib.lib,wsock32.lib,wldap32.lib,ws2_32.lib,但这些都不起作用

我真的很想将其用作静态库(程序文件夹中没有.dll),所以如果有人可以帮助我,我将不胜感激!

PS。我正在使用VS2015

c++ curl libcurl static-libraries

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

为什么链接器会尝试链接到我从未告诉它链接到的文件?

我收到链接器错误,指示链接器无法打开文件(静态库),因此失败.我正在非常困难地排除此错误,因为我从未告诉链接器链接到它无法打开的文件.

我告诉链接器链接到几个静态库.我链接的许多库都是wxWidgets静态库.我不需要来自wxWidgets的所有模块,因此有一些我链接到的和许多我不是.链接器无法打开的文件是'wxbase31ud_net.lib'.就像我说的那样,该文件不在我链接的库中.我的直接想法是,这种依赖性是以某种方式隐式引入的,可能是我链接到的一个wxwidgets库.我不认为静态链接是这样工作的,但我没有任何其他想法.我一直在研究这种可能性,但我没有发现任何迹象表明情况.

  • 我将构建输出详细程度设置为最大值,并且在报告错误之前从未提及过'wxbase31ud_net.lib'.
  • 我在我的cmake项目中确认有问题的文件从未从FindWxWidgets模块传回给我,并且从未在与目标关联的任何文件列表中引用.
  • 我浏览了整个项目目录,发现在任何地方都没有引用该文件,包括cmake生成的项目文件(visual studio项目文件).

什么可能导致链接器尝试打开此文件?

编辑:另外,要清楚,我看到的错误是LNK1104

linker wxwidgets static-libraries static-linking visual-c++

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

是否可以在C#中使用全局方法

所以我有一个静态类让我们说它叫做Worker,并且让我说它里面有一个名为Wait(float f)的方法,所有公共所以我可以在任何地方访问它,如下所示:

Worker.Wait(1000);
Run Code Online (Sandbox Code Playgroud)

现在我想知道有什么方法可以定义某种独特的特殊方法,所以我可以像这样做:

Wait(1000);
Run Code Online (Sandbox Code Playgroud)

(没有在课堂上我会使用它)?

c# static-methods static-libraries

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