Linux+qt:创建动态库so,以及如何使用(详细步骤)
创建动态库的步骤:
- 编写源代码文件,例如
mylib.cpp
。 - 编写头文件,例如
mylib.h
。 - 编译源代码生成动态库。
以下是一个简单的例子:
mylib.h
:
#ifndef MYLIB_H
#define MYLIB_H
class MyLib {
public:
MyLib();
void doSomething();
};
#endif // MYLIB_H
mylib.cpp
:
#include "mylib.h"
#include <iostream>
MyLib::MyLib() {
// 构造函数实现
}
void MyLib::doSomething() {
std::cout << "Doing something in the dynamic library!" << std::endl;
}
编译动态库:
g++ -shared -o libmylib.so mylib.cpp -fPIC
使用动态库的步骤:
- 将生成的
libmylib.so
放置到系统的库路径下,或者在编译使用库的程序时指定库路径。 - 编写使用动态库的主程序,例如
main.cpp
。 - 编译主程序,并在编译时链接动态库。
main.cpp
:
#include "mylib.h"
int main() {
MyLib myLib;
myLib.doSomething();
return 0;
}
编译主程序并运行:
g++ main.cpp -L. -lmylib -o main
./main
注意:
-shared
选项指定生成动态库。-fPIC
选项用于生成位置无关的代码,适用于动态库。-L.
指定了库的搜索路径,.
表示当前目录。-lmylib
指定链接libmylib.so
动态库,这里的mylib
是库的名称,不包括前缀lib
和后缀.so
。
评论已关闭