V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sgissb1
V2EX  ›  程序员

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

  •  
  •   sgissb1 · 2013-11-23 22:49:09 +08:00 · 5857 次点击
    这是一个创建于 4016 天前的主题,其中的信息可能已经有所发展或是发生改变。
    linux基本几个命令还是会的。以前写代码为了省事就用IDE来写。

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

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

    unix高级编程,属于什么时期看的书?长时间在win下做开发,linux不是非常熟悉。
    第 1 条附言  ·  2013-11-25 19:46:22 +08:00
    感谢各位大叔大婶的热情帮忙,但各位大叔大婶貌似没注意。

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

    gcc g++会简单用用。

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

    如果有什么好的建议也欢迎回帖。谢谢
    28 条回复    1970-01-01 08:00:00 +08:00
    forgottencoast
        1
    forgottencoast  
       2013-11-23 22:53:50 +08:00
    立即动手,遇到问题Google搜索。
    after1990s
        2
    after1990s  
       2013-11-23 22:54:49 +08:00
    UNIX 高级编程
    onemoo
        3
    onemoo  
       2013-11-23 22:56:56 +08:00
    我觉得如果LZ会Linux的基本使用的话,就看LZ说的那本书好了。
    xdeng
        4
    xdeng  
       2013-11-23 23:11:26 +08:00
    做过win 入linux 更简单 无非就是 open read write close unix环境高级编程
    sgissb1
        5
    sgissb1  
    OP
       2013-11-23 23:22:50 +08:00
    @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  
       2013-11-23 23:31:55 +08:00
    @sgissb1
    LZ是有C/C++语言的基础的,要学Linux下的开发。
    那我觉得《unix环境高级编程》就可行,等于直接学了系统调用(相当于win的api)。

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

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

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

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

    可以看看《flex和bison》,以防你哪天要改造C语言,哈哈
    sgissb1
        11
    sgissb1  
    OP
       2013-11-24 08:39:31 +08:00
    @wlxiong thx

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

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

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

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

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

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

    http://book.douban.com/subject/2073826/
    wizardoz
        27
    wizardoz  
       2013-11-26 12:04:01 +08:00   ❤️ 2
    @gouera 不好意思,多年前看的,名字记混了。我刚刚亚马逊看了一下,我说的应该是这本《Unix\Linux编程实践教程》。适合有一定编程基础的人快速了解Linux。
    kneep
        28
    kneep  
       2013-11-27 10:45:18 +08:00
    推荐两本书:
    第一本: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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:02 · PVG 03:02 · LAX 11:02 · JFK 14:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.