手动编译链接一个HelloWorld
来源:互联网 发布:巴基斯坦怎样国家知乎 编辑:程序博客网 时间:2024/05/16 11:06
集成开发环境让我们对程序的调试编译链接都变得如何轻松.作为一名极客怎会止步于这种表象?你或许听说过”编译”“链接”这种最熟悉的生僻词.编译和链接到底是怎么完成的?今天我们来动手链接一个自己的程序:
1寻找”cl”编译器
你需要一个编译器,什么?没有?如果你安装了集成开发环境的话,编译器已经自动被安装到了你计算机中.不信?搜索cl.exe
看找到了吧.打开它们所在的位置,用命令行工具在windows下是cmd定位到这个目录.
2编写一个HelloWorld
打开你的文本编辑器,在里面输入类似这样的内容,保存为xxx.c到一个目录
本人偷懒就直接放在cl.exe下了.如果你也这样做,请在实验完毕后删掉我们的三个文件.
3看,我要编译了
在定位在cl.exe 的命令行输入 按照以下命令格式输入:
cl 文件路径文件名 /I “包含库所在地址”
回车
包含库所在地址指的是stdio.h所在的地址.
我这里具体输入的是:
cl hello.c /I “C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include”
如果此时命令行不报错而是显示:
hello.obj
那么我们的工作就是成功了.
4链接成exe
在上一步骤我们已经生成了一个目标文件:hello.obj
我们尝试下面的命令:
link hello.obj /LIBPATH:”C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib” /SUBSYSTEM:CONSOLE /MACHINE:X86 “kernel32.lib” “user32.lib” “gdi32.lib” “winspool.lib” “comdlg32.lib” “advapi32.lib” “shell32.lib” “ole32.lib” “oleaut32.lib” “uuid.lib” “odbc32.lib” “odbccp32.lib”
请将上面的路径替换成你自己电脑上的kernel32.lib等文件所在路径.
如果有报错:找不到xxx.lib,尝试搜索它的位置.你可能会发现它在另外的一个目录.我也不知道怎么同时使用多个链接目录.如果你知道可以告诉我一声哟.但是我们也有解决方案:
计算机->属性->高级设置->环境变量
在”系统变量”一栏,寻找是否有LIB一项,如果不存在,则新建一个,将我们前面找到的那两个路径填入其中,但是要用;作为每个路径的结尾.
重启你的计算机.
回到命令行那一步,输入:
link hello.obj
回车.
一个金光闪闪的exe就生成在我们目录下面了.
运行一番后记得删除它们三个哟.
想看到更多有趣好玩的内容继续关注本博客.(~ o ~)~
关于更丰富的编译链接命令,你可以参考这里
- 手动编译链接一个HelloWorld
- 手动添加一个helloworld activity
- 手动编译,链接c程序
- 手动编写、编译一个servlet
- VS2005手动编译链接C++文件
- Linux下C++手动编译,链接过程
- 使用GCC手动C 的编译链接
- 编译链接-----强制链接一个函数
- 手动编译链接生成c51的hex文件
- WCF手动搭建 HelloWorld
- go语言初探--一个helloworld编译出来有2.2M!
- VS2015使用pjsip库编译一个helloworld工程
- 记录一个编译链接错误的解决方法
- 一个编译链接的过程详解(转载)
- 一个编译链接的过程解读
- 图解命令行手动编译构建一个win32汇编程序
- 手动布设陷阱链接
- 手动触发链接
- C++细节学习之智能指针auto_ptr和tr1::shared_ptr
- arm-none-linux-gnueabi-解决make zImage奇怪错误
- Linux文件目录与路径
- lucida
- Merge
- 手动编译链接一个HelloWorld
- Oracle备份与恢复系列 五 续 EXP/IMP迁移、复制数据库
- symbol lookup error - undefined symbol
- Lucene TF-IDF 相关性算分公式
- 高并发服务器学习之线程类
- Android开发需要安装的软件或工具
- Android 代码优化
- 【学习笔记】交换两数的方法
- 面试常见问题