简单的共享库

Ism*_*ush 3 c++ linux shared-libraries

  1. STD库是共享库还是它是什么?出于好奇.
  2. 是否有任何书籍详细描述了共享的静态库开发?
  3. 有没有教程?

ps(我正在使用netbeans,eclipse,anjuta)并且教程没有用,因为我试图了解实际发生了什么.

vit*_*aut 7

在我的平台(Ubuntu Maverick)上它是:

g++ test.cpp
ldd a.out

linux-vdso.so.1 =>  (0x00007fffee1ff000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f18755fd000)
libm.so.6 => /lib/libm.so.6 (0x00007f187537a000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f1875163000)
libc.so.6 => /lib/libc.so.6 (0x00007f1874de0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1875920000)
Run Code Online (Sandbox Code Playgroud)

注意上面的libstdc ++.so.6.

使用cmake创建共享库非常容易.

1.安装cmake 2.6或更高版本.

2.使用库的代码创建文件test.cpp.

3.创建文件CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)
project(TEST)
add_library(test SHARED test.cpp)
Run Code Online (Sandbox Code Playgroud)

4.运行cmake以创建makefile:

cmake -G "Unix Makefiles"
Run Code Online (Sandbox Code Playgroud)

5.运行make以构建共享库.

使用CMake,您还可以使用以下命令生成Eclipse CDT项目

cmake -G "Eclipse CDT4 - Unix Makefiles"
Run Code Online (Sandbox Code Playgroud)

您还可以在此处找到有关该主题的有趣文章,并提供进一步的参考.