vic*_*ico 2 c++ linux g++ dlopen
我创建了简单的c ++应用程序.我可以编译它并且工作正常.但现在我需要动态加载库,我已经将dlfnc.h添加到我的项目中并添加了一些代码:
#include <iostream>
#include <dlfcn.h>
void *mylib;
int eret;
using namespace std;
int main() {
mylib = dlopen("mylib.so", RTLD_LOCAL | RTLD_LAZY);
eret = dlclose(mylib);
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译:
myname@ubuntu:~/workspace/LinuxGcc/src$ g++ LinuxGcc.cpp
Run Code Online (Sandbox Code Playgroud)
并得到编译错误:
/tmp/ccxTLiGY.o: In function `main':
LinuxGcc.cpp:(.text+0xf): undefined reference to `dlopen'
LinuxGcc.cpp:(.text+0x25): undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
dlfcn.h 存在于 /usr/include/
哪里有问题?
小智 10
的dlopen(3):
Run Code Online (Sandbox Code Playgroud)Link with -ldl.
所以
g++ LinuxGcc.cpp -ldl
Run Code Online (Sandbox Code Playgroud)
会好的.
| 归档时间: |
|
| 查看次数: |
7099 次 |
| 最近记录: |