新手简单问题求教
最近刚刚接触Linux下的开发,学习《linux高级编程》第三章的一个例子。
main.c文件如下:
#include <stdio.h>
#include “reciprocal.hpp”
int main (int argc, char **argv)
{
int i;
i = atoi (argv[1]);
printf (“The reciprocal of %d is %g\n”, i, reciprocal (i));
return 1;
}
reciprocal.cpp文件如下:
#include <cassert>
#include “reciprocal.hpp”
double reciprocal (int i)
{
assert (i != 0);
return 1.0/i;
}
reciprocal.h文件如下
#ifdef __cplusplus
extern “C” {
#endif
extern double reciprocal (int i);
#ifdef __cplusplus
}
#endif
对于main.c 和reciprocal.cpp分别进行了编译,也生成了o文件,源代码和生成的目标文件都在/root/myproject文件夹下
在终端,我输入如下连接命令出错:
g++ -o reciprocal main.o reciprocal.o
出错信息如下:
main.o(.text +0x2d): In function 'main ':
:undefined reference to 'reciprocal '
collect2: ld returned 1 exit status
请教各位老师,给我一个帮助,帮我解决这个问题,谢谢!
------解决方案--------------------我按照你的做法,在linux AS下编译通过,除了你的引号是中文的错误,没有其他错误。但运行是有coredump。代码本身的问题。如果只是编译,应该没问题。
但你每步都要用g++哟