回答
在海湾合作委员会,-c
开关是你想要的。
-c
的意思是“编译,不要链接”,并且你得到一个name.o
输出文件。
使用编译器的-c
选项(适用于GCC,选项可能与其他c编译器相同)。
从GCC的手册页:
当你调用GCC,它一般不会 预处理,编译,汇编 和链接。 “整体选项” 允许您在 中间阶段停止此过程。例如, -c选项表示不运行链接程序。然后输出由汇编器输出的对象 组成。
链接阶段是查找main()
的步骤,如果找不到它,就会投诉。
可以编译单个文件不main
,但你不能链接他们当然不能运行他们,因为他们是不完整的程序。请注意,valgrind不是一个静态分析工具,而是一个运行时工具,因此它在没有链接到可运行程序的单个转换单元上没有用处。
如果你想测试单个文件,常见的做法是包括像每个文件中的以下内容:
#ifdef UNIT_TEST
int main(int argc, char **argv)
{
/* unit test code goes here */
}
#endif
而且随着-DUNIT_TEST
编译文件。
假设你的hello.c:
#include<stdio.h>
#include<stdlib.h>
_start()
{
exit(my_main());
}
int my_main()
{
printf("Hello");
return 0;
}
编译如下:
gcc -nostartfiles hello.c
,你可以得到一个可执行出来。
非常有趣的是。谢谢! – 2013-10-09 01:25:07
您可以添加引文 – 2013-10-30 04:02:13
- 1. 如何在不编译源代码的情况下安装Numpy
- 2. 在没有主机的情况下使用源代码控制
- 3. 在没有Visual Studio的情况下编译Microsoft的LoginAdmin.dll代码
- 4. 如何在没有visual studio的情况下编译C文件
- 5. 编译器可以在没有扩展的情况下编译代码吗?
- 6. 编译器是否会在没有主体的情况下内联函数?
- 7. 在没有.NET Framework 4.0的情况下使用Windows SDK 7.1编译C++代码
- 8. 如何在不编译代码的情况下修改全局资源DLL?
- 9. 如何在没有原型的情况下查找C函数?
- 10. 是否有可能在不进入REPL的情况下编译clojure源代码?
- 11. 在没有gnustep的情况下编译目标c程序
- 12. 是否可以在没有lib的情况下编译C++?
- 13. 如何在没有dll的情况下编译GNU sed?
- 14. 如何在没有avx的情况下为kvm centos编译dpdk
- 15. 如何在没有Eclipse的情况下编译greenDao示例?
- 16. 如何在没有DynamicInvoke的情况下编译MethodCallExpression?
- 17. 如何在没有QtCreator的情况下编译Qt 5项目?
- 18. MyEclipse如何在没有javac的情况下编译Java类?
- 19. 如何在没有证书的情况下编译设备?
- 20. 如何在没有运行SBT的情况下编译测试
- 21. 如何在没有Shade插件的情况下编译DropWizard?
- 22. 在没有配置和代码签名的情况下编译GKRocket演示
- 23. 如何在没有matlab的情况下在labview中使用matlab源代码?
- 24. 有没有办法在不编译的情况下使用scipy.interpolate rbf函数?
- 25. 任何可以在没有系统修改的情况下编译Xen源代码的Linux发行版?
- 26. 如何在没有C++的情况下编译时间断言11
- 27. 如何编译C程序以在没有命令框的情况下运行?
- 28. 如何在不编译它的情况下在不同的体系结构上编译相同的C代码?
- 29. 如何在没有硬编码NetworkCredentials的情况下使用System.Net.Mail?
- 30. 如何在没有编码的情况下更改MPEG2-ts?
我觉得'-c'对于大多数C编译器来说是相当标准的。 – JeremyP 2011-04-23 13:03:28