Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1150916
  • 博文数量: 309
  • 博客积分: 6093
  • 博客等级: 准将
  • 技术积分: 3038
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-03 17:14
个人简介

linux学习记录

文章分类

全部博文(309)

文章存档

2014年(2)

2012年(37)

2011年(41)

2010年(87)

2009年(54)

2008年(88)

分类: LINUX

2008-07-24 15:51:58

前一阵一直使用KDevelop,所以将一些使用心得记录下来。

1.         设置头文件和库

在“工程”菜单中选择“工程选项”

 

进入“工程选项”之后,选择“配置选项”

在“C/C++预处理器标志(CPPFLAGS)” 和“连接器选项(LDFLAGS)”填入相应的数据

2.         代码补全

C++ 代码补全设置也在工程属性中

进入“工程选项”之后,选择“C++特定设置”,再选择“代码补全”Tab

单击“添加”按钮,选择“Kdevelop自定义目录的PCS导入器”

选择“下一步”后,选择需要分析的目录,因为代码补全功能完全依靠这些头文件提供的信息。例如要代码补全mysql++,在“数据库名称”填入mysqlpp,将mysql++头文件所在的路径填入“要分析的目录”中去,注意单击“添加”按钮将目录设置,这个过程一次尽可能只添加一个路径,如果添加多个的话,Kdevelop很容易崩溃。

单击“下一步”开始分析

分析完成后,单击“完成”即可

可以看到mysqlpp已经在代码补全数据库了。

下面就是代码补全的效果。

3.         使用KDevelop创建lib的方法

此处的例子为生成静态库,生成so也是一样的。方法参考KDevelop Wiki FaQ文档和automakemanager的用法文档 

Automake管理器中选择src目录,右单击“添加目标”

选择库,填写生成库的名称

添加产生libcpp文件

在菜单中选择“构建目标”进行构建libgbasepp.a, 还是生成在src目录下

实际的例子:

dynamiclog_forgbasepp 

解压缩后放在/root/workspace/dynamiclog 

gbasegbase++目录放在/usr/local/include目录下

lib中的内容放在/usr/local/lib目录下

 

如何从mysqlpp转为gbasepp 

需要注意的地方

a)       将所有的mysql 头文件转换为 gbase的头文件

一般的对应关系:

MYSQL    >   GBASE

mysql     >    gbase

my       >     gs 

b)       Connectionconnect函数设置配置文件的名称

Connection::connect(cchar* db, cchar* host, cchar* user,
                   cchar
* passwd, uint port, gs_bool compress,
                   unsigned 
int connect_timeout, cchar* socket_name,
                   unsigned 
int client_flag)
{
         
// caution here, for gbase
         
//set_option(opt_read_default_file, "my");
         set_option(opt_read_default_file, "gs");
         ......
}

 c)       Gbase.H的头文件中定义

#define GBASE_VERSION_ID             50022

4.        Kdevelop源码发布[补充:2008-01-15] 

在“工程”菜单中选择“分发和发布”

进入后选择“创建源代码归档”按钮,即可生成源代码存档(位于工程目录下)

这样代码存档无法通过configuremake方式编译,所以解压存档,在代码存档中添加下面这些文件:

config.guess
config.sub
depcomp
install-sh
ltmain.sh
missing

这些文件都位于工程目录下,放置到源码存档目录中。

P.S. 这些文件是通用的,也可拷贝到他处供日后使用) 

如果使用Item 1中的方法设置头文件和库,那就需要修改位于工程目录下的src/Makefile.am文件 

原文件
# set the include path found by configure
INCLUDES= $(all_includes)
      
# the library search path.
ace_server_LDFLAGS = $(all_libraries)
 
修改后的文件
# set the include path found by configure
INCLUDES= $(all_includes) -DUNIX -DHAVE_LONG_LONG -I/root/dtl/lib -I/root/ACE/ACE_wrappers -I/usr/local/mysql/include/mysql -I/usr/local/include/mysql++ -I/usr/include/libxml2 -I/usr/include/loki
 
# the library search path.
ace_server_LDFLAGS = $(all_libraries) -L/root/dtl/lib/debug -lDTL -lodbc -lodbcinst -lACE -lmysqlpp -lxml2 -lxslt –lloki
 

重新打包修改后存档就可正式发布了。

阅读(1711) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~