gcc 指定入口函数
2014-07-24 17:10
190 查看
近来写个测试代码
结果影响到正常编译了,因为测试代码 的 TEST.C 文件会被 make自动找到,两个 main 函数冲突了
想起ARM 下可以各种方式指定 ENTRY 函数的
网上找了下,gcc 有两种方式 gcc -e entryfunc gcc --Entry=entryfunc 事实上后一种试验时说是过时了
把main改成testmain
gcc -o testapp -e testmain *.c
报以下错
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
原因是gcc 自动链ctrl.o 文件,这个ctrl代码中引用了 main
另加参数 -nostartfiles 忽略之
gcc -o testapp -e -nostartfiles testmain *.c
但执行时testmain返回时报错,是因为返回时少了必要清理代码
修改 testmain 把 return 改成 exit
int main(int argc,char *argv[]) { int test_ret=0 ; test_ret += test_xxx1(); test_ret +=test_xxxx1(); printf("Total: %d functions, %d tests, %d errors\n",function_test, call_test, test_ret); return(test_ret); }
结果影响到正常编译了,因为测试代码 的 TEST.C 文件会被 make自动找到,两个 main 函数冲突了
想起ARM 下可以各种方式指定 ENTRY 函数的
网上找了下,gcc 有两种方式 gcc -e entryfunc gcc --Entry=entryfunc 事实上后一种试验时说是过时了
把main改成testmain
int testmain(int argc,char *argv[]) { int test_ret=0 ; test_ret += test_xxx1(); test_ret +=test_xxxx1(); printf("Total: %d functions, %d tests, %d errors\n",function_test, call_test, test_ret); return(test_ret); }
gcc -o testapp -e testmain *.c
报以下错
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
原因是gcc 自动链ctrl.o 文件,这个ctrl代码中引用了 main
另加参数 -nostartfiles 忽略之
gcc -o testapp -e -nostartfiles testmain *.c
但执行时testmain返回时报错,是因为返回时少了必要清理代码
修改 testmain 把 return 改成 exit
int testmain(int argc,char *argv[]) { int test_ret=0 ; test_ret += test_xxx1(); test_ret +=test_xxxx1(); printf("Total: %d functions, %d tests, %d errors\n",function_test, call_test, test_ret); exit(test_ret); }
相关文章推荐
- GCC指定某个函数或某几个函数的优化级别
- c c++ 函数入口和出口的hook(gcc 编译选项),然后打印出函数调用关系的方法
- gcc编译文件时找不到指定函数怎么办
- gcc如何设置程序的入口函数
- gcc中格式化输出函数的研究
- DateDiff 函数-两个指定日期间的时间间隔数目
- Delphi:字符操作函数--生成指定个数的字符(串)
- 根据函数名字符串执行指定函数
- DateDiff 函数-两个指定日期间的时间间隔数目
- 写了一个将VxWorks的shell打印输出到指定内存中的接口,可广泛用于CLI下的调试函数显示以及故障自动捕获等功能,稍作修改可以适合其它嵌入式OS
- gcc中格式化输出函数-学习笔记
- 封装回调函数——为对象方法(Object Method,参数中带this指针的函数) 构造 普通函数(参数中无this指针的函数)形式 的入口
- 打开文件夹并且选中指定的文件的通用函数
- C++中的property库的设计与实现过程(二)——如何为属性指定get_和set_函数?
- VC为自己的工程指定入口点
- syslog函数输出到指定文件的问题
- 打开文件夹并且选中指定的文件的通用函数
- likely,unlikely宏与GCC内建函数__builtin_expect()
- 如何获取指定内存所在的模块、当前模块、当前函数的返回模块
- GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址