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

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

  •  
  •   sgissb1 · Nov 23, 2013 · 6675 views
    This topic created in 4578 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
        1
    forgottencoast  
       Nov 23, 2013
    立即动手,遇到问题Google搜索。
    after1990s
        2
    after1990s  
       Nov 23, 2013
    UNIX 高级编程
    onemoo
        3
    onemoo  
       Nov 23, 2013
    我觉得如果LZ会Linux的基本使用的话,就看LZ说的那本书好了。
    46fo
        4
    46fo  
       Nov 23, 2013
    做过win 入linux 更简单 无非就是 open read write close unix环境高级编程
    sgissb1
        5
    sgissb1  
    OP
       Nov 23, 2013
    @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
        6
    onemoo  
       Nov 23, 2013
    @sgissb1
    LZ是有C/C++语言的基础的,要学Linux下的开发。
    那我觉得《unix环境高级编程》就可行,等于直接学了系统调用(相当于win的api)。

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

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

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

    接着构建必须要学的,毕竟不可能和初学c/c++的哥们一样一步一步来,相对来说有些部分的内容应该是无缝的。
    wlxiong
        8
    wlxiong  
       Nov 24, 2013
    推荐读读 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
        9
    46fo  
       Nov 24, 2013 via iPhone
    学了Linux后 鼠标基本没用了。你就会觉得VS是最好的 最体贴的 最强大的ide了 Linux和win大同小异的 你都3年c++了 就差熟悉API了吧 习惯就好 本人也是菜鸟
    bombless
        10
    bombless  
       Nov 24, 2013
    UNIX编程艺术吧
    有很多通用的编程技巧可以学学,我觉得非常好。

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

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

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

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

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

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

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

    http://book.douban.com/subject/2073826/
    wizardoz
        27
    wizardoz  
       Nov 26, 2013   ❤️ 2
    @gouera 不好意思,多年前看的,名字记混了。我刚刚亚马逊看了一下,我说的应该是这本《Unix\Linux编程实践教程》。适合有一定编程基础的人快速了解Linux。
    kneep
        28
    kneep  
       Nov 27, 2013
    推荐两本书:
    第一本: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   ·   Solana   ·   927 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 19:33 · PVG 03:33 · LAX 12:33 · JFK 15:33
    ♥ Do have faith in what you're doing.