Articles of 静态库

将Nginxbuild成库

我想build立一个静态库(最好)的nginx,但一个DLL也可以工作。 有没有人试过这个? 目前,我没有build立好运气,试图使用lib.exe将.objs构build到lib中,但是当我尝试使用该库时,每个函数都会得到未parsing的外部对象。 我也尝试创build一个DLL从-MT到-LD更改CFLAGS,使用__declspec(dllexport)将主要包装到导出的函数中,但是当我尝试启动nginx主时,出现Access Violation错误。 任何提示,将不胜感激。 我工作的平台是Windows。

静态链接的库需要链接到它们的依赖关系吗?

我正在构build一个依赖于静态库A的可执行文件,该静态库又依赖于静态库B.当我构build我的应用程序时,是否还需要在构build脚本中链接到B? 更具体地说,我需要做-la -lb ,还是只需要通过-la连接就足够了?

Makefile中的dynamic目标

我试图创build一个每个src/子文件夹有一个目标的Makefile,以便它创build一个静态库。 我目前正在尝试这个: %.o: %.cpp $(CXX) $(CXXFLAGS) $(INCLUDE) -c -o $@ $< lib%.a: $(patsubst %.cpp, %.o, $(wildcard src/%/*.cpp)) $(AR) rcs $@ $^ 但是这不起作用,目标匹配工作,但依赖性跟踪不。 如果我只是将src/%/*.cpp单独保存到适当目录中的.cpp文件中,但是我尝试在string函数中使用它来将.cpp转换为.o , %不能再工作了。

Linux中共享对象和普通库之间的区别

绑定到共享对象或普通对象的主要区别是什么? 另外,如何在一些程序之间共享某些variables并知道我们的variables从未被另一个程序改变?

你能把一个C ++ Linux针对性的应用程序链接到一个Objective-C静态库吗?

我已经看到了很多关于如何将一个Objective-C应用程序链接到C ++库的信息,但是你可以用相反的方法做到吗? 我的合作伙伴和我一直在使用Objective-C来开发iPhone应用程序。 通过项目的一半,我们决定添加一个新的function。 此function需要推送通知,所以我们需要编写将在Linux机器上运行的服务器端应用程序。 这个服务器应用程序需要访问一些(大部分,实际上)用Objective-C编写的代码。 我想我们有两个select:用C / C ++重新编写整个东西,或者在Linux上重新编译Objective-C代码。 由于重写时间太长,我想采取第二条路线。 我设法使用GCC和GNUstep将我们需要的linux服务器应用程序所需的Objective-C类编译成一个静态库。 我想用C ++编写实际的服务器应用程序,但我需要将该应用程序链接到Objective-C库。 可以这样做吗? 怎么样? 如果没有,任何人都可以给我一个如何去做这个想法?

dynamic链接从静态libarary?

我目前正在尝试在我的Ubuntu 14.04机器上重buildFlightGear。 一切顺利,直到我决定构build需要Qt的fgrun 。 我决定编译Qt作为一个静态库,因为我不希望自build库超出系统上的任何一个。 我静静地在系统上构buildQt,如下所示: ./configure -static -opensource -nomake tests -gtkstyle -prefix /home/user/Qt/5.4/Src/qtbuild -no-rpath -no-compile-examples -system-proxies -skip qtwebkit -skip qtwebkit-examples -nomake tools -nomake examples -skip script -release -skip multimedia -verbose -l dl -skip location -skip multimedia -skip quick1 -skip quickcontrols -skip sensors -skip serialport -skip svg -skip tools -skip translations -skip wayland -skip webchannel […]

将/ usr / local添加到./configure的path

我想安装libvisio-0.1.5 ,这需要librevenge-0-0 。 我得到的错误: checking for REVENGE… no configure: error: Package requirements ( librevenge-0.0 ) were not met: 我刚刚安装了librevenge,并且拥有所有的pkg-config信息,但它们位于/usr/local/lib/pkgconfig ,而不在/usr/lib/pkgconfig 。 我怎样才能告诉./configure在/usr/lib/pkgconfig和/usr/local/lib/pkgconfig下总是默认查看? 我试过了 export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig ./configure 我有: $ pkg-config –variable pc_path pkg-config /usr/lib/pkgconfig:/usr/share/pkgconfig

链接器错误编译keyczar程序

我正在使用g++ -lkeyczar -lcrypto -o basic_encrypt -Wall -O2 base_encrypt.cpp来编译下面的代码: #include <cassert> #include <iostream> #include <string> #include <keyczar/keyczar.h> void EncryptAndDecrypt(const std::string& location) { keyczar::Keyczar* crypter = keyczar::Crypter::Read(location); if (!crypter) return; std::string input = "Secret message"; std::string ciphertext; std::cout << "Plaintext: " << input << std::endl; bool result = crypter->Encrypt(input, &ciphertext); if (result) { std::cout << "Ciphertext (Base64w): […]

将静态库转换为dynamic链接库的方法

如果我所有的库都是* .a静态库。 有没有办法,我可以将其转换为* .sodynamic链接库? 也许使用ld? 我正在使用SUSE Linux。 ELF平台。

Linux – 有没有办法让一个简单的静态库包含资源?

可能重复: 是否有一个相当于Windows的“资源文件”的Linux? 我试图找出一种将资源embedded静态库的方式,用于使用gcc工具链与C源代码链接。 相当于embedded了资源的Windows DLL。 这可以用一个Linux静态库吗? 总之,例如,做这个cat someresourcedata.txt > mylib.a并能够链接到一个编译的C代码引用mylib.a 。 任何想法或build议?