问一个关于axel的问题[已解决]。

软件和网站开发以及相关技术探讨
回复
头像
薰衣草的轨迹
帖子: 130
注册时间: 2008-07-07 11:16
来自: 辽宁-大连
联系:

问一个关于axel的问题[已解决]。

#1

帖子 薰衣草的轨迹 » 2009-04-11 20:50

最近在研究axel。

源文件如下,gcc编译的命令是gcc -g -Wall axel_demo.c axel.c conf.c conn.c ftp.c http.c tcp.c -lpthread -o new_axel
没有任何错误。
然后,运行./new_axel http://code.google.com/p/gnome-menu-fil ... menu-bar.c panel-menu bar.c
结果Segmentation fault。

代码: 全选

| 1#include <stdio.h>                                                             
| 2#include <string.h>                                                            
| 3#include "axel.h"                                                              
| 4                                                                               
| 5int main( int argc, char *argv[] )                                             
| 6{                                                                              
| 7     /* example: a.out url filename */                                         
| 8     conf_t *demo_conf_t_p;                                                    
| 9     axel_t *demo_axel_t_p = axel_new( demo_conf_t_p, 0, *( argv + 1 ) );      
|10     if( demo_axel_t_p == NULL )                                               
|11          printf( "WRONG: FAILED TO GET A NEW axel_t.\n" );                    
|12                                                                               
|13     strcpy( demo_axel_t_p->filename, *( argv + 2 ) );                         
|14                                                                               
|15     if( axel_open( demo_axel_t_p ) == 0 )                                     
|16          printf( "WRONG: FAILED AT axel_open()." );                           
|17                                                                               
|18     axel_start( demo_axel_t_p );                                              
|19                                                                               
|20     while( !( demo_axel_t_p->ready ) )                                        
|21     {                                                                         
|22          sleep( 2 );                                                          
|23          axel_do( demo_axel_t_p );                                            
|24     }                                                                         
|25                                                                               
|26     axel_close( demo_axel_t_p );                                              
|27                                                                               
|28     return 0;                                                                 
|29} 
那是因为没有conn_init,还缺一个给conn_t malloc()一下的过程……
上次由 薰衣草的轨迹 在 2009-04-11 23:29,总共编辑 2 次。
头像
薰衣草的轨迹
帖子: 130
注册时间: 2008-07-07 11:16
来自: 辽宁-大连
联系:

Re: 问一个关于#include的问题。

#2

帖子 薰衣草的轨迹 » 2009-04-11 20:54

gcc提示信息之一:

代码: 全选

/home/lavender/idea/axel-1.1/axel_demo.c:9: undefined reference to `axel_new‘
所有的错误信息一共六行,
第一行是什么“在main函数里有错误”,
其余的五行与上面给出的类同,不过是另外几个函数的提示,比如axel_do之类的。都是在axel.h里面有函数原型的。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 问一个关于#include的问题。

#3

帖子 wangdu2002 » 2009-04-11 20:54

把头文件用绝对路径试下。
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
薰衣草的轨迹
帖子: 130
注册时间: 2008-07-07 11:16
来自: 辽宁-大连
联系:

Re: 问一个关于#include的问题。

#4

帖子 薰衣草的轨迹 » 2009-04-11 20:59

没有一点变化。 :em20

嗯,顺便问个问题哈……
头文件里的函数原型对应的定义放在axel.c里面,可是axel.h里面根本就没有提到axel.c……
不过就算这样编译器应该也能找到定义吧。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 问一个关于#include的问题。

#5

帖子 wangdu2002 » 2009-04-11 21:01

函数里的参数好多空格! :em20
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
薰衣草的轨迹
帖子: 130
注册时间: 2008-07-07 11:16
来自: 辽宁-大连
联系:

Re: 问一个关于#include的问题。

#6

帖子 薰衣草的轨迹 » 2009-04-11 21:04

我选择,我喜欢,oh yeah。 :em04
头像
薰衣草的轨迹
帖子: 130
注册时间: 2008-07-07 11:16
来自: 辽宁-大连
联系:

Re: 问一个关于#include的问题。

#7

帖子 薰衣草的轨迹 » 2009-04-11 21:26

等会,我好像有点明白了……
争取马上解决问题……
头像
薰衣草的轨迹
帖子: 130
注册时间: 2008-07-07 11:16
来自: 辽宁-大连
联系:

Re: 问一个关于#include的问题。

#8

帖子 薰衣草的轨迹 » 2009-04-11 21:49

下回来的axel居然要先./configure以及make一下……(谁知道make是不是多余的……反正make install也弄了下……)

然后,
我,
很光荣地,
Segmentation fault了……
回复