LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 920|回复: 4

关于extern变量在g++中编译的问题

[复制链接]
发表于 2004-9-10 11:56:41 | 显示全部楼层 |阅读模式
比如我在 extern.cpp中只有下面一句(我就是必须放在cpp文件里面,请不要让我改为extern.h)
int x = 10;
在main.cpp中
extern int x;

然后使用了
cout << x <<endl;

在g++中就是编译不过,提示未定义x,为什么呢?下面是makefile
main: main.cpp extern.o
        g++ main.cpp extern.o -o main

extern.o: extern.cpp
        g++ -c extern.cpp

还想问一句的是,gcc不能编译cpp程序吗?比如我在以上的makefile里面把g++改为gcc,什么cout,<<等等通通不认识了。
发表于 2004-9-10 13:48:06 | 显示全部楼层
include那个cpp应该就可以了吧
gcc编译C++,需要显式指明连接C++库,-lstdc++
发表于 2004-9-10 14:58:00 | 显示全部楼层
Makefile写成这样试试:

  1. main:main.o extern.o
  2.         g++ main.o extern.o -o main
  3. main.o:main.cpp
  4.          g++ -c main.cpp
  5. extern.o:extern.cpp
  6.         g++ -c extern.cpp


复制代码
 楼主| 发表于 2004-9-10 16:56:26 | 显示全部楼层
对不起,关于extern的问题解决,但是有新问题

用gcc编译C++,加上-lstdc++也不对啊,还是不识cpp的语法
发表于 2004-9-10 17:55:25 | 显示全部楼层
不会的,include <iostream>以后记得要using namespace std;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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