QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 795|回复: 4

请教C中链接库函数的问题

[复制链接]
发表于 2004-9-20 12:26:29 | 显示全部楼层 |阅读模式
我自己作了一个库. 其中定义了一个宏:
#define STREQ(str1,str2) (strcmp((str1),(str2))==0)
然后在源文件中调用. 用gcc编译:
gcc -c modify.c -o modify.o
gcc -lcrypt modify.o -lsession -o modify
出现错误:
modify.o(.text+0x53): In function `main':
: undefined reference to `STREQ'
collect2: ld returned 1 exit status
后来我在源文件中加入了上述宏定义就对了.请问: 这是什么原因? 如果不修改源文件, 应该如何解决?谢谢.
发表于 2004-9-20 12:50:54 | 显示全部楼层
宏放在头文件里
回复

使用道具 举报

 楼主| 发表于 2004-9-20 13:08:12 | 显示全部楼层
喔. 明白了. 谢谢
回复

使用道具 举报

 楼主| 发表于 2004-9-20 15:24:20 | 显示全部楼层
可是我在库函数里也要用到这个宏. 我把宏从库函数移到头文件后, 编译源程序时出现如下错误:
[tintin@localhost cgi_source]$ gcc -lcrypt modify.c -lsession -o modify
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libsession.so: undefined reference to `STREQ'
collect2: ld returned 1 exit status
请问在库函数中的宏应该如何处理?谢谢.
回复

使用道具 举报

发表于 2004-9-20 17:58:15 | 显示全部楼层
库函数引用头文件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 11:31 , Processed in 0.040987 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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