当前位置: 技术问答>linux和unix
请大家指教!
来源: 互联网 发布时间:2015-09-17
本文导语: 我刚刚开始学习Linux,对他的基本操作有了大概得了解!但是我现在想再linux下进行编程,对此我还是不太了解,大家能不能介绍给我一本学习再Linux下编程的书籍!还有我对灾Linux下的编程过程不太清楚,比如在那里写...
我刚刚开始学习Linux,对他的基本操作有了大概得了解!但是我现在想再linux下进行编程,对此我还是不太了解,大家能不能介绍给我一本学习再Linux下编程的书籍!还有我对灾Linux下的编程过程不太清楚,比如在那里写程序,在哪里编译,怎么调试……谢谢大家了!
|
linux编程,其实和其他平台(像windows)没有什么不同,
VC有集成开发环境(IDE),其实最后还是在调用命令行的cl.exe和link.exe编译器。只不过cl的命令行选项都由IDE生成(当然你要在setting中用鼠标或键盘去选择和设置),并有一个源代码编辑器。那么linux下的编程基本工具就是gcc(叫做GNU Compiler Collection : gnu编译器集合),它是一个编译器(绝对是我见过最强大的编译器,以后自己慢慢体会吧),所以你要学好gcc编程,必须要学好它的命令行接口(选项),当然linux也提供了一个集成开发环境叫“kdevelop”,可以完成自动创建项目(如makefile等),创建源文件和部分函数(如:main函数),然后进行编译(自动生成gcc命令行)。不过传统的unix程序员过去是不使用什么集成开发环境的,他们用 “编译器+编辑器+调试器“的模式来开发程序,这种方式我也比较喜欢,一个是因为我是一个怀旧的人,另一个原故是因为每一个细节都在自己的掌握之下。关键是你要选好编辑器。常见的组合为:
gcc+vi+gdb
gcc+emacs+gdb(我使用,因为I like emacs :-))
kdevelop+ddd
kdevelop+dbx
其它扩展一下还有
gcc+vi+gdb+make
gcc+emacs+gdb+make
VC有集成开发环境(IDE),其实最后还是在调用命令行的cl.exe和link.exe编译器。只不过cl的命令行选项都由IDE生成(当然你要在setting中用鼠标或键盘去选择和设置),并有一个源代码编辑器。那么linux下的编程基本工具就是gcc(叫做GNU Compiler Collection : gnu编译器集合),它是一个编译器(绝对是我见过最强大的编译器,以后自己慢慢体会吧),所以你要学好gcc编程,必须要学好它的命令行接口(选项),当然linux也提供了一个集成开发环境叫“kdevelop”,可以完成自动创建项目(如makefile等),创建源文件和部分函数(如:main函数),然后进行编译(自动生成gcc命令行)。不过传统的unix程序员过去是不使用什么集成开发环境的,他们用 “编译器+编辑器+调试器“的模式来开发程序,这种方式我也比较喜欢,一个是因为我是一个怀旧的人,另一个原故是因为每一个细节都在自己的掌握之下。关键是你要选好编辑器。常见的组合为:
gcc+vi+gdb
gcc+emacs+gdb(我使用,因为I like emacs :-))
kdevelop+ddd
kdevelop+dbx
其它扩展一下还有
gcc+vi+gdb+make
gcc+emacs+gdb+make
|
哦,忘了说怎么编译了,举个例子吧,详细的你可以去看man gcc :-)
gcc -Wall -g -o myapp -I/usr/include -I/home/mydir/include -L/usr/lib -L/lib -lc -lm -lstdc++ -lpthread myapp.cpp
我解释一下:
-Wall告诉gcc输出所有等级的警告消息,
-g告诉gcc可执行程序内部生成供调试器使用的调试信息
-o告诉gcc生成可执行文件名为myapp
-I(两个)选项,为gcc添加两个额外的头文件搜索目录/usr/include和/home/mydir/include,
-L(两个)选项,为gcc添加两个额外的库文件搜索目录/usr/lib和/lib,
-l选项指定连接4个动态或静态库:libc(c运行库),libm(数学函数库),libstdc++(C++标准函数库),libpthread(linux POSIX线程库)
myapp.c表示输入的c++原文件.
gcc -Wall -g -o myapp -I/usr/include -I/home/mydir/include -L/usr/lib -L/lib -lc -lm -lstdc++ -lpthread myapp.cpp
我解释一下:
-Wall告诉gcc输出所有等级的警告消息,
-g告诉gcc可执行程序内部生成供调试器使用的调试信息
-o告诉gcc生成可执行文件名为myapp
-I(两个)选项,为gcc添加两个额外的头文件搜索目录/usr/include和/home/mydir/include,
-L(两个)选项,为gcc添加两个额外的库文件搜索目录/usr/lib和/lib,
-l选项指定连接4个动态或静态库:libc(c运行库),libm(数学函数库),libstdc++(C++标准函数库),libpthread(linux POSIX线程库)
myapp.c表示输入的c++原文件.
|
对编程而言,linux只是一个环境,和任何系统都一样。每个系统都有每个系统的编译工具。
交你个简单的c程序的helloworld.
创建一个文件helloworld.c,将下面内容写进去。
#include
main()
{
printf("helloworldn");
}
然后运行命令:gcc helloworld.c -o hello
交你个简单的c程序的helloworld.
创建一个文件helloworld.c,将下面内容写进去。
#include
main()
{
printf("helloworldn");
}
然后运行命令:gcc helloworld.c -o hello
|
机械工业出版社
|
顶楼上的,偶推荐你看《the unix programming environment》。
|
不错
|
在命令行中输入vi ,就可进行编译了,
然后再用gcc工具进行调试
然后再用gcc工具进行调试
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。