Static library is a group of object files bundled together in an archive by the archiver program. The static libraries have a .a
extension.
AdvantagesCommand for creating a static library
1. The executable is not dependent on any library as the library code is included in the binary
2. In some cases performance improvement
ar rcs -o libmylibrary.a file1.o file2.o file3.o
Steps for generating the static library
libemployee.a
for the Employee Program written in the previous post1. Compiling source files to object files
g++ -Wall -c -fPIC -O -I. -o Employee.o Employee.cpp2. Command for building the archive file libemployee.a
ar -rcs -o libemployee.a Employee.o
The Client Program
1 #include "Employee.h" 2 #include <iostream> 3 4 int main() 5 { 6 Employee *emp = new Employee("Pankaj", 26); 7 std::cout << "Employee Name: " << emp->getName() << std::endl; 8 std::cout << "Employee Age : " << emp->getAge() << std::endl; 9 delete emp; 10 return 0; 11 }
Compiling the Client Program
g++ -Wall -c -fPIC -O -I. -o rClient.o Client.cpp
Linking the client executable with the static library
gcc -o client Client.o -fPIC -Wl,-rpath,. -L. -lstdc++ -lemployee
Running
ldd
against the client executable gives us the following result:$ ldd ./client linux-vdso.so.1 => (0x00007fff7cde3000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fb85d978000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fb85d762000) libc.so.6 => /lib64/libc.so.6 (0x00007fb85d3f5000) libm.so.6 => /lib64/libm.so.6 (0x00007fb85d19e000) /lib64/ld-linux-x86-64.so.2 (0x00007fb85dc81000)
The client executable is not dependent on the employee library
1 comment :
Hello,
I am Thomas John, representing the website Ubuntu Manual. As the name suggests UM is a site that delivers content related to Ubuntu, its derivatives and related software. We are looking to expand our website and are seeking talented writers familiar with Ubuntu or Linux or similar open source software to include in our community of writers.
We had come across your article on the web and was wondering whether you would be interested in writing for us. We can provide sufficient compensation for your writings and would love to have you as one of our writers.
I will provide you with the rest of the details if you are interested.
Cheers,
--
Thomas John,
Ubuntu Manual
Post a Comment