使用Eclipse创建动态加载的Linux库

时间:2009-06-04 11:32:08

标签: c++ c linux eclipse

我正在使用Eclipse编写C ++程序。我想将它编译为Linux的库,像Windows中的DLL一样。我怎么能这样做?您是否知道有关如何创建库的任何教程?

我只想了解这是Linux的DLL模拟以及如何创建它。我会感谢一个小例子。

3 个答案:

答案 0 :(得分:9)

在Linux中,DLL的等价物是(无论如何)共享对象(.so)。

你需要做这样的事情:

$ g++ -c -fPIC libfile1.cpp
$ g++ -c -fPIC libfile2.cpp
$ g++ -shared -o libyourlib.so libfile1.o libfile2.o

查看一些开源C ++库项目以获取更多信息。 GTKMM就是其中之一。

当然,不是手动编译所有内容,强烈建议使用生成文件 IDE (例如EclipseCDT或者KDevelop或{选择你最喜欢的}},这将在幕后为你创建一个。

答案 1 :(得分:6)

在UNIX / Linux环境中,DLL称为shared libraries,通常具有.so.o扩展名。

请参阅共享库中的Linux HOWTO

答案 2 :(得分:0)

您可能想要更改符号的默认可见性。它可以提高性能。查看主题的GCC wiki条目。

2006年,Ulrich Drepper还撰写了paper,描述了在UNIX系统上实现动态共享对象的正确方法。