我的邮件貌似未成功投递。
看起来在chroot环境里把.h当成普通.cpp源码文件进行编译,导致进入 链接阶段,从而缺少main函数定义。
能麻烦在chroot环境里执行g++ a.h -v命令打印详细编译信息提供我查 看 一下吗?
Btw,添加dev邮件记录信息方便其他有疑惑的同学查阅
-----Original Message----- From: wenlong.ding@turbolinux.com.cn [mailto:wenlong.ding@turbolinux.com.cn] Sent: Friday, April 22, 2022 8:27 PM To: pengchenghan pengchenghan@huawei.com; hedongbo hedongbo@huawei.com; xiezhiheng xiezhiheng@huawei.com; zhanggaofeng (C) zhanggaofeng9@huawei.com; wangkun (AT) wangkun49@huawei.com; guopeilin guopeilin1@huawei.com Subject: g++编译报错
大家好,
有一个g++编译的问题想向大家请教一下。
目前在虚拟机、物理机上安装22.03,同时还有obs自动创建的chroot 编译环境
准备一个头文件
# cat a.h
#include <stdio.h> const wchar_t test_var[] = L"awidetest";
使用g++处理
# g++ a.h
在虚拟机和物理机上执行没有任何报错,而且能正常产生 a.h.gch
在chroot到编译环境中,出现下面的报错:
bash-5.1# g++ a.h /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../../lib64/Scrt1.o: in function `_start': (.text+0x1b): undefined reference to `main' collect2: error: ld returned 1 exit status
现在无法确定为什么会出现这个问题,希望能给与解答,另外附上
chroot
环境安装的rpm包列表
--
Best Regards wenlong.ding
北京拓林思软件有限公司 wenlong.ding@turbolinux.com.cn http://www.turbolinux.com.cn 北京市朝阳区东三环中路39号建外SOHO东区B座3205