在Kdevelop中添加SQLite的静态链接库,具体方法:
kdevlop的project options->配置选项->C程序->编译器标志中写入如下参数:
-L/usr/local/lib -lsqlite3 就KO!了
参考:
编译c++程序:
a.h a.cpp , b.h b.cpp (一个cpp文件只能包含一个相同名称的函数,或相同名称的class,这个类中可以包含多个函数)
1。g++ -c a.cpp -o a.o
g++ -c b.cpp -o b.o
2. g++ a.o b.o -o test (test即是可执行的文件)
3。.so是Linux(Unix)下的动态链接库. 和.dll类似.
生成动态链接库:
g++ -fPIC -shared -o libMyApp.so *.o 这样就生成了libMyApp.so文件 (在当前目录里生成libMyApp.so)
或者
$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so (c语言)
最后更改lib.so路径 sudo cp lib.so /usr/lib ,以便调用
使用so文件:必须包括.h文件
gcc test.c -L. -ltest -o test
g++ test.cpp -L$/usr/lib -lmymath -o test
g++ test.o -L$/usr/lib -lmymath -o test
g++ test.o libmymath.so -o test (直接使用也可以的 )
g++ test.o -L/usr/lib -lmymath -o test(推荐用这种)
kdevelop下使用
1. 在src右击options的conplier下的conplier for c++中写上so文件的路径和名称( -L/usr/lib -lmymath)
2.修改makefile.am
# the library search path.
view1_LDFLAGS = $(all_libraries)
AM_CXXFLAGS = -L/usr/lib -lmymath // 添加路径和名称
4.一些参数
-shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件
-fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。
-L.:表示要连接的库在当前目录中
-ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称
// 以下还没有使用过
LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径。
当然如果有root权限的话,可以修改/etc/ld.so.conf文件,然后调用 /sbin/ldconfig来达到同样的目的,不过如果没有root权限,那么只能采用输出LD_LIBRARY_PATH的方法了。
相关文章
- android中sqlite数据库的基本使用和添加多张表
- Android中SQLite数据库操作(2)——SQLiteOpenHelper类
- 你会在C#的类库中添加web service引用吗?
- 是否有用于在Linux中验证SQLite数据库的命令行实用程序?
- Windows Phone8 中如何引用 SQLite 数据库2
- 将动态库添加到VC程序中
- Eclipse添加maven依赖找不到maven库中的jar
- 关于用insert向数据库中添加数据,如果字符型字段里有双引号或者单引号,该如何处理.
- 在Xcode 4中向现有项目添加静态库。无法导入头
- 如何将库项目添加到AndroidStudio中的现有android项目