在c++中创建静态库,新手
Creating a static library in C++, newbie
只是一个简短的问题,我相信这个论坛上的人很容易回答。
我如何去创建一个静态库,我相信是一个dll(但我很可能错了:S),在c++中。我刚开始使用c++,但是我对把函数移到我编写的每个新程序中感到非常恼火,那么我该如何创建一个每次都可以引用的库呢?
谢谢你的帮助,我真的很感激。
我相信您想要的是使用-c标志。这基本上允许你编译一个目标文件,而不需要main函数。然后你可以在任何程序中使用这个目标文件,你只需要包含头文件,这样你的新对象就可以编译了。然后它们将链接到这个.o文件。您也可以考虑将其转换为。a文件,但这是一个不必要的步骤。.a和.o文件之间唯一真正的区别是数据的存储方式,以及利用它们的编译命令。这将是利用.o文件的典型命令系列。
STEP1:首先构建.o文件,带有-c标志,这在最基本的级别上让编译器知道没有main是可以的。
COMMAND1: g++ -c someLib.cpp -o someLib.o
STEP2:现在将库中的对象和想要使用"库"的cpp文件合并到同一个程序中。
COMMAND2: g++ someMainFile.cpp someLib.o -o someMainProgram
在这个过程中,动态链接的好处是你不会有符号重复。在上面的例子中,存在于someLib中的符号。o也将最终存在于someemainprogram中(例如:如果你编译然后删除所有出现的someelb)。从您的系统中删除0,您的程序仍然可以运行!)。如果它们在DLL中,则someemainprogram将只具有someemainfile .cpp中的符号,并且它将在运行时尝试在可用的DLL中查找someelib中的符号。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- #为""定义宏;静态";针对不同的上下文
- cmake如何在fedora工作站中找到boost静态库包
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 将公共但非静态的成员函数与ALGLIB集成
- cmake在我的项目中所需的所有静态库都不成功
- C++从另一个类访问公共静态向量的正确方法是什么
- 基于boost的程序的静态链接——zlib问题
- 在静态库中嵌入类方法
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 如何在C++中获得"静态纯虚拟"功能?
- 私有类型的静态常量成员
- 使用gcc从静态链接的文件中查找可选符号
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 如何在C++中使用非静态成员函数作为回调函数
- 将静态库链接到不带-fPIC的共享库中
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 静态结构和一个定义规则
- 为什么虚函数不能是静态的和全局的?
- 在c++中创建静态库,新手