QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1058|回复: 0

如何实用netpbm编程?

[复制链接]
发表于 2005-3-22 12:35:41 | 显示全部楼层 |阅读模式
我在FC3 KDevelop下随便写了一个很小的test,如下:

1.

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <iostream>
#include <cstdlib>
#include "pbm.h"

using namespace std;

int main( int argc, char** argv )
{
pbm_init(NULL, NULL);
bit **bits = NULL;
bits = pbm_allocarray(640,480);

}

2.
添加 "/usr/include" 到我工程的include中, 该目录包括 pbm.h (我想,这个include目录已经包含了我所有需要的头文件,即安装netpbm-10.25.rpm所能得得到的所有头文件都在该目录下)

3.
添加 "-lnetpbm" 作为我工程的动态联接库(这个库在/usr/lib下,可以不用指定路径),我不知道是不是还有其它的库需要添加以支持netpbm动态联接库...

4.
编译文件,通过!!

5.
联接生成可执行文件,失败!!显然是联接错误!!. 有人知道我还少哪些东西吗???我几乎肯定以上程序中的两个函数 `pbm_init(int*, char**)' 和`pm_allocarray(int, int, int)'就编到了 netpbm库中. 并且我试过去用静态联接库,还是不对!!肯定是少联接了其它必要的库,或者....实在搞不懂了!!高手指点啊.是不是少哪个系统库文件???以下是整个联接报告的消息:

cd '/home/pjia/programs/netpbm_test/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k
gmake all-recursive
Making all in src
/bin/sh ../libtool --mode=link --tag=CXX g++ -O0 -g3 -o netpbm_test netpbm_test.o -lnetpbm
g++ -O0 -g3 -o netpbm_test netpbm_test.o -lnetpbm
netpbm_test.o(.text+0x120): In function `main':
/home/pjia/programs/netpbm_test/src/netpbm_test.cpp:36: undefined reference to `pbm_init(int*, char**)'
netpbm_test.o(.text+0x13e):/home/pjia/programs/netpbm_test/src/netpbm_test.cpp:38: undefined reference to `pm_allocarray(int, int, int)'
collect2: ld returned 1 exit status
gmake[2]: *** [netpbm_test] Error 1
gmake[2]: Target `all' not remade because of errors.
gmake[1]: *** [all-recursive] Error 1
gmake: *** [all] Error 2
*** Exited with status: 2 ***


Thank you very much
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 11:40 , Processed in 0.046802 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表