免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5082 | 回复: 7
打印 上一主题 下一主题

gcc编译cpp文件的参数怎么写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-12 15:26 |只看该作者 |倒序浏览
一个使用ostream的简单示例,ld提示找不到std::basic_stream等符号。
谢谢。

论坛徽章:
0
2 [报告]
发表于 2006-11-12 15:50 |只看该作者
已经正确生成目标文件了,如果连接器报错,多半是库的问题。试试看 -lstdc++,或者 -lg++ 行不行。

另外,C++ 的程序用 g++ 做前段(front-end)来编译,会省去很多麻烦。

例如,control.cxx,用 g++ 编译的时候:

[langue@universe * ttyp1 ^ Sun Nov 12 15:37:07] {jobs: 0} <bash-2.05b>
# g++ -v -o control control.cxx
/usr/bin/cc -v -o control control.cxx -lstdc++ -lg++ -lm
gcc version 2.7.2.2+myc1
/usr/libexec/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dunix -Di386 -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__ -D__unix__ -D__i386__ -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__ -D__unix -D__i386 -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386) control.cxx /var/tmp/cc03937a.ii
GNU CPP version 2.7.2.2+myc1 (80386, BSD syntax)
#include "..." search starts here:
#include <...> search starts here:
/usr/include/g++
/usr/include
End of search list.
/usr/libexec/cc1plus /var/tmp/cc03937a.ii -quiet -dumpbase control.cc -version -o /var/tmp/cc03937a.s
GNU C++ version 2.7.2.2+myc1 (80386, BSD syntax) compiled by GNU C version 2.7.2.2+myc1.
as -o /var/tmp/cc03937a1.o /var/tmp/cc03937a.s
ld -e start -dc -dp -o control.o /usr/lib/crt0.o -L/usr/libexec /var/tmp/cc03937a1.o -lstdc++ -lg++ -lm -lgcc -lc -lgcc
[langue@universe * ttyp1 ^ Sun Nov 12 15:37:21] {jobs: 0} <bash-2.05b>
#

[ 本帖最后由 langue 于 2006-11-12 15:51 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-11-12 15:53 |只看该作者
-lstdc++
我试过了这个参数,也不行……

论坛徽章:
0
4 [报告]
发表于 2006-11-12 15:54 |只看该作者
原帖由 Magicloud 于 2006-11-12 15:53 发表
-lstdc++
我试过了这个参数,也不行……


你是用 gcc 还是 g++ 来执行编译?

论坛徽章:
0
5 [报告]
发表于 2006-11-13 09:05 |只看该作者

RE: gcc编译cpp文件的参数怎么写?

在你的源文件中没有加入 
using namespace std;
这一行吧。GCC并不象其他编译器默认引入标准名字空间。

[ 本帖最后由 flying_insky 于 2006-11-13 09:29 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-11-13 10:04 |只看该作者
原帖由 flying_insky 于 2006-11-13 09:05 发表
在你的源文件中没有加入 
using namespace std;
这一行吧。GCC并不象其他编译器默认引入标准名字空间。

有的……
原帖由 langue 于 2006-11-12 15:54 发表


你是用 gcc 还是 g++ 来执行编译?

都用了……
这个系统上gcc和其lib安装的位置和一般的不太一样,不过c文件编译没问题……

论坛徽章:
0
7 [报告]
发表于 2006-11-13 11:22 |只看该作者
环境变量设置有问题。
将libstdc++.so所在的目录加入LD_LIBRARY_PATH中试试。

论坛徽章:
0
8 [报告]
发表于 2006-11-13 14:21 |只看该作者

学习中,呵呵

学习中,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP