基本的静态库和动态库的奇怪问题?
先来三段代码(估计有人见过),但我链接静态库的时候没问题,链接动态库的时候会丢掉“!”第一段
hello.h
#ifnde HELLO_H
#define HELLO_H
void hello(const char *name);
#endif
第二段
hello.c
#include <stdio.h>
void hello(const char *name)
{
printf("Hello %s!\n", name);
}
第三段
main.c
#include "hello.h"
int main(void)
{
hello("everyone");
return 0;
}
=======================================================
就这么简单的三段,我创建静态库的时候
输出:hello everyone!
而创建动态库的时候
gcc -c hello.c
gcc -shared -fPIC -o libmyhello.so hello.o
gcc -o hello main.c -L. -lmyhello
输出: hello everyone
!!!!就是会掉“!”这个符号,到底怎么回事啊?
Linux环境下编译,望前辈给予指导
[ 本帖最后由 liaocao2014 于 2014-5-2 14:12 编辑 ]