gcc如何设置程序的入口函数

本小白本想参加华为的德州编程比赛,结果赛程过半,调试环境还没配好,要学的还有太多太多,书归正传。。

这次遇到的问题起源于比赛题目的一个要求“牌手程序必须以game为入口”。

在VS下编程时,可以使用IDE很方便地修改入口函数名。但是这个比赛要求程序要在Linux环境下运行,而且大赛方提供的虚拟机是没有图形界面的。小白第一次面对命令行操作时那种恐慌,相信大家初出茅庐时都有体会。又扯远了。

在网上查了一下gcc如何设置入口函数,找到了这么一条指令 gcc -nostartfiles -e myentry source.c -o source

-nostartfiles :目的是不让编译器把会引用main的代码编入我们的程序(具体细节没有看,网上有大神的讲解)

-e:设置程序的入口函数

我遇到的问题:我的源码名称是game.cpp,需要设置的入口函数是game,所以就用了如下的编译命令 gcc -nostartfiles -e game game.cpp -o game,然后问题就出现了

warning:game这个函数找不到。

什么原因呢?我觉得应该是c++编译器在编译时对game做了名称的变换,所以在设置入口时就找不到game了。

解决方法:在game前加上extern "C",然后再用执行gcc -nostartfiles -e game game.cpp -o game,就没有问题了。

这一个问题搞了一天。。之前虽然看过C和C++的函数命名的区别,但是没有这么深刻的印象,这次深深地记住了。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值