可重定位目标文件链接过程问题。
我定义了3个文件,分别为:global.h http.cpp main.cpp 文件中内容如下(部分有些省略):
global.h文件部分内容:
const int DEFAULT_AMOUNT = 100;
http.cpp文件部分内容:
#include"http.h"
extern int DEFAULT_AMOUNT;
main.cpp文件部分内容:
#include"global.h"
#include"http.h"
int main()
{
各种操作;
return 1;
}
为什么我使用Makefile的时候总是提示 "Undefined reference to "DEFAULT_AMOUNT" 呢"
makefile如下:
main: main.o http.o
g++ main.o http.o -o main;
http.o: http.cpp
g++ -c http.cpp -o http.o
main.o main.cpp
g++ -c main.cpp -o main.o
这种链接程序到底改如何写呢,谢谢各位~
[解决办法]
把对DEFAULT_AMOUNT的定义都放到cpp文件中去,其中某个cpp中不用extern,另外的用extern修饰~
[解决办法]
参照:http://blog.sina.com.cn/s/blog_4e967c8b010100qa.html