• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sgissb1
V2EX  ›  程序员

linux 下C类语言开发,需要看那些书做入门(非语言类书籍)?

  •  
  •   sgissb1 · Nov 23, 2013 · 7173 views
    This topic created in 4737 days ago, the information mentioned may be changed or developed.
    linux基本几个命令还是会的。以前写代码为了省事就用IDE来写。

    最近在看一些开源代码,发现貌似老外就用emace或者vi之类编辑器来写。

    现在是想了解一下linux自己搭建一个编译工程出发(脱离IDE的帮助),需要看哪些书?

    unix高级编程,属于什么时期看的书?长时间在win下做开发,linux不是非常熟悉。
    Supplement 1  ·  Nov 25, 2013
    感谢各位大叔大婶的热情帮忙,但各位大叔大婶貌似没注意。

    语言类书籍就不用推荐了。工作已经有一段时间了,这方面看啥书心里还是有个底的。

    gcc g++会简单用用。

    我现在打算熟悉linux api,以及在linux搭建一个编译工程(没有IDE的头疼病)。

    如果有什么好的建议也欢迎回帖。谢谢
    28 replies  •  1970-01-01 08:00:00 +08:00
    forgottencoast
    forgottencoast
    Nov 23, 2013
    1
    立即动手,遇到问题Google搜索。
    after1990s
    after1990s
    Nov 23, 2013
    2
    UNIX 高级编程
    onemoo
    onemoo
    Nov 23, 2013
    3
    我觉得如果LZ会Linux的基本使用的话,就看LZ说的那本书好了。
    46fo
    46fo
    Nov 23, 2013
    4
    做过win 入linux 更简单 无非就是 open read write close unix环境高级编程
    sgissb1
    sgissb1
    OP
    Nov 23, 2013
    5
    @xdeng
    我现在其实有2个疑问。
    第一个疑问是,linux下api熟悉。这些的话,看那些书靠谱点,这年头烂书多。如果unix高级编程可以直接看的话那我就去看。

    我是3年C++,另外我还想了解一下linux比较常用的一些基础类库。我目前就知道posix、stl、boost。win下的话,我就用stl多一些。

    另外一个就是工程编译方面的问题。在win下有vs帮我搞定这个问题。
    linux下,我看到开源分为configure和make 2个阶段。

    轻松学makefile的那本书我至今没看懂。configure我也不会写。所以工程编译是我最头疼的。另外就是调试,看到高手们都是命令行gdb。调试有没有便捷的环境?

    目前发现linux下的IDE做的都各位优劣,用vs习惯了。所以linux下IDE感觉很不好用,功能不足或者问题太多。


    @onemoo 直接上那本可行?
    onemoo
    onemoo
    Nov 23, 2013
    6
    @sgissb1
    LZ是有C/C++语言的基础的,要学Linux下的开发。
    那我觉得《unix环境高级编程》就可行,等于直接学了系统调用(相当于win的api)。

    构建方式啊、makefile啊什么的可以由简入深,边练边学。你一开始写个简单的代码,直接敲gcc就可以了。这些构建工具无非是增加了便利性,所以当你写的代码越来越复杂时,就自然会用这些构建工具了。当然这期间要多google和man

    其他的各种库也同理,慢慢就了解了...

    P.S. 本人也是菜鸟,个人愚见仅供参考。
    sgissb1
    sgissb1
    OP
    Nov 24, 2013
    7
    @onemoo 。。。。。。其实我就只想走应用方面,快速了解linux有那些库比较流行,然后我熟悉一下。

    接着构建必须要学的,毕竟不可能和初学c/c++的哥们一样一步一步来,相对来说有些部分的内容应该是无缝的。
    wlxiong
    wlxiong
    Nov 24, 2013
    8
    推荐读读 An Introduction to GCC for the GNU Compilers gcc and g++
    by Brian Gough, Foreword by Richard M. Stallman
    http://www.network-theory.co.uk/docs/gccintro/
    46fo
    46fo
    Nov 24, 2013 via iPhone
    9
    学了Linux后 鼠标基本没用了。你就会觉得VS是最好的 最体贴的 最强大的ide了 Linux和win大同小异的 你都3年c++了 就差熟悉API了吧 习惯就好 本人也是菜鸟
    bombless
    bombless
    Nov 24, 2013
    10
    UNIX编程艺术吧
    有很多通用的编程技巧可以学学,我觉得非常好。

    可以看看《flex和bison》,以防你哪天要改造C语言,哈哈
    sgissb1
    sgissb1
    OP
    Nov 24, 2013
    11
    @wlxiong thx

    @xdeng 搭建工程也是个头疼病。c类语言在工程搭建上一直是个大问题。
    sgissb1
    sgissb1
    OP
    Nov 24, 2013
    12
    @bombless 不,你说错了!我不改造C C++。我要改革计算机体系~~~ 发明操作系统并且要征服宇宙!解释我会聘请你做顾问。哥们到时候你一定要出现哦~~~~

    你推荐第一本书确实很有用,问题在于一说到“艺术”、“哲学”,我就很排斥。就像《深入浅出MFC(侯捷翻译的那本)》一样,尼玛一本讲技术的书,非要搞成诗集有必要么?再说了,很多程序员都是理科或者工科出身的,未必有这么好的艺术气息啊。

    技术书是拿来欣赏还是找困扰?头疼啊头疼。

    还是thx,如果有类似书,而且写书人比较正常一点的,欢迎推荐一下。
    missdeer
    missdeer
    Nov 24, 2013 via Android
    13
    unix编程艺术一书适合到了一定阶段(大概中级水平吧)看,即使是只做win开发的人也有帮助,只是有些观点会跟你一直来的想法有冲突。
    sgissb1
    sgissb1
    OP
    Nov 24, 2013
    14
    @missdeer 哦,那我看看去。我就怕和《深入浅出MFC》的中文版一个样子,一堆诗歌散文,我就崩溃了
    kelvin_fly
    kelvin_fly
    Nov 24, 2013
    15
    @sgissb1 看你这个情况,我觉得目前最适合的是 《linux c一站式编程》 了。 看上两周后可以接楼上们推荐的书了。 相信我,我是过来人……
    RisingV
    RisingV
    Nov 24, 2013
    16
    BLP ->《the beginning of linux programing》
    sgissb1
    sgissb1
    OP
    Nov 24, 2013
    17
    @kelvin_fly ok,走起
    join
    join
    Nov 24, 2013
    18
    简单的写点makefile
    学习下gcc的调试与一些编译选项
    找一个顺手的editor
    看一些优秀项目的源码:推荐lua
    学习网络编程方面的知识
    hhkbp2
    hhkbp2
    Nov 24, 2013
    19
    欢迎加入Emacs党
    yanjunjie
    yanjunjie
    Nov 25, 2013
    20
    linux c编程一站式学习
    coolypf
    coolypf
    Nov 25, 2013
    22
    Linux 下编程,查 API 直接 man 命令,例如: man 2 shutdown 。
    另外推荐一个极好的 C++ 类库 POCO 。
    https://pocoproject.org/
    Ricepig
    Ricepig
    Nov 25, 2013
    23
    Unix高级编程

    然后可以用Eclipse或者Netbeans,能帮你生成一些makefile。

    实际上现在直接用makefile的机会也不多了,都是各种生成。
    wizardoz
    wizardoz
    Nov 26, 2013
    24
    有一本书叫《Unix实用编程技术》还是什么的,所谓“实用”,其实是手把手教你一些简单Linux命令的实现,如ls的实现,管道的实现等等。这些东西其实包含了Linux应用层的核心思想,所以看一下里面例子的实现,会有对Linux shell的理解豁然开朗的感觉。
    迁移到一个平台,API当然不是最重要的,重要的是了解在这个平台下的人都是怎么做的。所以不建议上来就看什么API手册之类的。可以先看一些文化类的,如《Unix编程艺术》。
    gouera
    gouera
    Nov 26, 2013
    25
    @wizardoz 那书叫什么啊,我搜你这个名字搜不到。。
    Jellyan
    Jellyan
    Nov 26, 2013
    26
    《Linux 程序设计》 这本入门不错

    http://book.douban.com/subject/2073826/
    wizardoz
    wizardoz
    Nov 26, 2013❤️2
    27
    @gouera 不好意思,多年前看的,名字记混了。我刚刚亚马逊看了一下,我说的应该是这本《Unix\Linux编程实践教程》。适合有一定编程基础的人快速了解Linux。
    kneep
    kneep
    Nov 27, 2013
    28
    推荐两本书:
    第一本:Advanced Programming in the UNIX Environment,http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321525949
    第二本:Linux System Programming,http://www.amazon.com/Linux-System-Programming-Talking-Directly/dp/1449339530
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4363 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    ♥ Do have faith in what you're doing.