Dynamic loading and symbols
Explicit library load example:
#include<stdio.h>
#include<stdlib.h>
#include<dlfcn.h>
int add(int,int);
int main()
{
int (*fptr)(int,int);
void *libh=dlopen("libdemo1.so",RTLD_LAZY);
if(libh == NULL)
{
puts("Error loading library");
exit(0);
}
fptr=dlsym(libh,"add");
if(fptr == NULL)
{
puts("Error finding function");
exit(0);
}
printf("sum = %d\n",fptr(20,10));
return 0;
}
Write the following as a library in a C file (test1.c):
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
- Compile the library and use the test code to load it
- Set the LD_LIBRARY_PATH var
- Change the library code to c++ (test1.cpp) and fix the code to load it
Recent Stories
Top DiscoverSDK Experts
Mendy Bennett
Experienced with Ad network & Ad servers.
Mobile | Ad Networks and 1 more
View Profile
Karen Fitzgerald
7 years in Cross-Platform development.
Mobile | Cross Platform Frameworks
View Profile
X
Compare Products
Select up to three two products to compare by clicking on the compare icon () of each product.
{{compareToolModel.Error}}Now comparing:
{{product.ProductName | createSubstring:25}} X
{{CommentsModel.TotalCount}} Comments
Your Comment