main.c代码:
#include
#include "sayhello.h"
int main(int argc, char** args)
{
sayhello() ;
return 0 ;
}
sayhello.c代码:
#include
#include "sayhello.h"
int sayhello()
{
printf("Hello\n") ;
}
sayhello.h代码:
int sayhello() ;
测试一:
将三个文件都放在同一个目录chtest中,按查询到的gcc调试资料经过编译,连接库的生成等一系列操作最终能正确生成main文件,执行显示:Hello
测试二:
想测试一下gcc编译时指定路径的情况。那我现在将main.c留在chtest文件夹中,然后创建另一个文件夹ch,我将sayhello.c,sayhello.h转移到ch中。然后在ch文件夹中编译生成libsayhello.a或libsayhello.so,再返回到chtest中编译main.c,想利用ch中生成的.a或.so直接生成我想要的main文件。
[liyang@LYLinux ch]$ ls
libsayhello.a sayhello.c sayhello.h sayhello.o
结果却总提示错误:
错误情况一:
[liyang@LYLinux chtest]$ gcc main.c -L /home/liyang/projs/ch/-lsayhello -o main
main.c:2:22: error: sayhello.h: No such file or directory
错误情况二:
[liyang@LYLinux chtest]$ gcc main.c -I /home/liyang/projs/ch -o main
/tmp/ccaTcTtp.o: In function `main':
main.c:(.text+0x12): undefined reference to `sayhello'
collect2: ld returned 1 exit status
请问高手:
我的这种测试是否存在问题(不能把main.c和sayhello.c,sayhello.h分开放置吗?)。如果这样放置没有问题,那怎么样才能按指定路径编译出来main文件呢?
谢谢了!!!
felixffffff 于 2012-11-14 15:39:14发表:
学习下
felixffffff 于 2012-11-14 15:39:11发表:
学习下
Jennycheng2010 于 2012-11-11 14:45:53发表:
学习下
Jennycheng2010 于 2012-11-11 14:44:25发表:
顶
于 2012-11-10 12:07:48发表:
真的是太感谢了!
我是同样的问题,找了好多网站都没找到答案,看了视频就解决了。
谢谢~
ly_chaojilong 于 2009-09-11 08:17:10发表:
[i=s] 本帖最后由 ly_chaojilong 于 2009-9-11 08:18 编辑 [/i]
问题已经解决;
如果有遇到类似问题的菜鸟们,可以看看廖老师的视频(gcc视频分享)
google一下就能找到,看完之后,可能一切都ok了。
ly_chaojilong 于 2009-09-10 09:23:27发表:
有没有高手帮忙看下?