将静态库与另一个静态库链接,并在exe中使用主库
Linking of static lib with another static lib and use the master lib in a exe
在eclipse中,我使用MinGW编译器在windows平台中完成了以下操作-C_proj.exe--->链接---->libB_proj.a---->链接---->libA_proj.a
-
当链接A和B时,我只指定libA_proj.A的路径(而不是库名称,因为这似乎不可能!)
-
当在C中使用B时,我必须同时指定libA_proj.a和libB_proj.a。
代码-
//a.h
class a
{
public:
void printA();
};
//a.cpp
void a::printA()
{
std::cout<<"This is 'a'"<<std::endl;
}
//b.h
class b
{
public:
void printB();
void printA();
};
//b.cpp
void b::printB()
{
std::cout<<"This is 'B'"<<std::endl;
}
void b::printA()
{
std::cout<<"This is 'B'....calling A"<<std::endl;
a objA;
objA.printA();
}
//c.cpp
int main()
{
b objB;
objB.printB();
objB.printA();
return 0;
}
现在我的要求是--我不想用C.exe链接B和A。有没有一种方法可以只将B与C链接并完成工作,这样我就可以只向第三方提供B和C.exe
lib文件(或.A文件)是对象文件的集合,有点像zip文件,但没有压缩。因此,您不能真正将一个lib文件与另一个ib文件链接。
你可以做的是从两个较小的库中形成一个大型库——基本上是拆包,然后重新打包为一个。使用ar -x libfile.a
提取模块,然后使用ar -a libfile2.a name1.o name2.o
将对象文件添加到新库中。
但是,我只想告诉您的两个组件的用户针对这两个库进行链接。更简单的解决方案。
相关文章:
- 如何在 docker 中使用静态 opencv 库编译 c++ 应用程序
- 为 haskell 堆栈项目编写静态 cpp 库
- 当我链接两个静态C++库时,我可以在两个主函数库中有两个主要功能吗?
- 静态包装库的多态迭代器,而不向用户公开库
- 编译器链接独立静态/动态库
- 如何链接一个使用其他库的静态C库
- 代码中的MinGW::块不链接静态OpenSSL库
- 如何编译静态OPENCV4库
- 使用更高级别的语言来测试静态C 库
- 如何将OPENDNP3添加为静态C 库
- 如何链接和调用安卓工作室预构建静态原生库的函数
- 使用静态SFML库时无法链接我的项目
- JNI 使用静态 NTL 库构建共享库
- 链接/编译时间有关静态模板库
- 将 Matlab 代码转换为静态C++库
- 为什么 C# 有静态主 () 但C++没有静态主
- 需要帮助使用 make 创建静态 C++ 库
- Python / C++绑定,如何再次链接静态C ++库(portaudio)与distutils
- cmake:链接静态导入库失败
- 将静态库与另一个静态库链接,并在exe中使用主库