读书人

可重定位目标文件链接过程有关问题

发布时间: 2012-02-14 19:19:19 作者: rapoo

可重定位目标文件链接过程问题。
我定义了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

读书人网 >C++

热点推荐