当前位置: 技术问答>linux和unix
关于C++的编译问题,在线等,谢谢!!!!
来源: 互联网 发布时间:2015-10-07
本文导语: 用g++ -Wall -c obj.cpp -o obj.x 编译没有错误 可是这样./obj.x 运行时为什么说我得权限不够呢? 还有,endl为什么总是识别不料呢?我加了 # include 还要加什么呢? 多谢, 在线等呢 | 第一去...
用g++ -Wall -c obj.cpp -o obj.x
编译没有错误
可是这样./obj.x
运行时为什么说我得权限不够呢?
还有,endl为什么总是识别不料呢?我加了 # include 还要加什么呢?
多谢,
在线等呢
编译没有错误
可是这样./obj.x
运行时为什么说我得权限不够呢?
还有,endl为什么总是识别不料呢?我加了 # include 还要加什么呢?
多谢,
在线等呢
|
第一去掉-c
-c是分步编译,生成得是目标文件,不能生成可执行文件
第二生成的obj.X用stat看一下有关权限
如果没有执行权限,用chmod +x obj.X
-c是分步编译,生成得是目标文件,不能生成可执行文件
第二生成的obj.X用stat看一下有关权限
如果没有执行权限,用chmod +x obj.X
|
去掉-c
-c的意思只是编译成obj文件,没有连接成可执行文件
-c的意思只是编译成obj文件,没有连接成可执行文件
|
修改如下:
g++ -Wall obj.cpp -o obj.x
你的编译没有通过是因为你使用了-c 参数. 此参数后面跟的应该是目标文件.o。
g++ -Wall obj.cpp -o obj.x
你的编译没有通过是因为你使用了-c 参数. 此参数后面跟的应该是目标文件.o。
|
using namespace std
|
同意 icecools(浮生若梦)
没有生成可执行文件。
没有生成可执行文件。
|
-c : Compile and assemble, but do not link
也就是说,-c参数只是对源文件进行编译,生成对应的目标文件,但是并不进行连接,也就无法生成可执行文件。
对于cout,要引入名空间std才行
也就是说,-c参数只是对源文件进行编译,生成对应的目标文件,但是并不进行连接,也就无法生成可执行文件。
对于cout,要引入名空间std才行
|
chmod
|
直接g++ obj.cpp看看,然后运行./a.out
另外,仅仅包含iostream,不使用std::来指定endl所在的名字空间,编译器将在全局名字空间中查找endl的定义。否则你需要使用using namespace std;来引入std中所有的元素
另外,仅仅包含iostream,不使用std::来指定endl所在的名字空间,编译器将在全局名字空间中查找endl的定义。否则你需要使用using namespace std;来引入std中所有的元素
|
su
chmod a+x a.out
chmod a+x a.out
|
在ROOT帐户下试试