By liran bh | 2/26/2017 | Linux User Space

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

 

{{CommentsModel.TotalCount}} Comments

Your Comment

{{CommentsModel.Message}}

Recent Stories

Top DiscoverSDK Experts

User photo
3355
Ashton Torrence
Web and Windows developer
GUI | Web and 11 more
View Profile
User photo
3220
Mendy Bennett
Experienced with Ad network & Ad servers.
Mobile | Ad Networks and 1 more
View Profile
User photo
3060
Karen Fitzgerald
7 years in Cross-Platform development.
Mobile | Cross Platform Frameworks
View Profile
Show All
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
Compare Now