• [置顶] 养成良好的编程习惯-一个库一个文件夹


    今天在linux上进行了比较复杂的编译和测试。

    先描述一下我比较失败的编译经验,希望能把刚才繁琐的动作的动作描述清楚。


    情景重复:

    1.cpp ----> lib1.so

    2.cpp ----> lib2.so

    3.cpp ----> exe


    好啦,我介绍下项目环境。

    cpp文件:

    source/bak(这个下面是:1.cpp.bak, 2.cpp.bak, 3.cpp.bak

    source/*.cpp

    工程:

    project/bak(这个下面是:Makfile1,Makfile2, Makfile3)

    project/Makefile


    现在进入我繁琐的事情了:

    为了编译 lib1.so,我做了一下几个动作:

    ①rm project目录下的所有的Makefile文件

    ②从project/bak中拷贝Makfile1到project目录,并改为Makefile。

    ③rm source目录下的所有的.cpp文件

    ④从source/bak中拷贝1.cpp.bak到source目录,并改为1.cpp。

    当然,如果编译一次,这个当然不是问题。但是,如果,你需要编译几十次,这些多余的脑力会成为你找到真理的障碍。(找到真相本来就很艰难,表增加额外的险阻)


    还好,今天头脑还比较清醒,还是挺过去了。


    下午,我是这样做的:

    cpp文件:

    source/1/1.cpp

    source/2/2.cpp

    source/3/3.cpp

    工程:

    project/1/Makefile

    project/2/Makefile

    project/3/Makefile


    现在要好很多了。是吧。


    我在这里记下微不足道的事情,但是,我觉得很重要。

    一·

    减少你查bug时的痛苦,把精力放在刀刃上。

    二·

    让你的查错误变得有迹可循,不会覆盖掉以前的测试程序。


    阻碍你做这样的事情的原因:

    一·

    比如,你需要额外的知识,比如Makefile的相对路径等问题。

    二·

    麻烦。你可能觉得现在既有的东西能够解决问题,为什么要引入新的东东。其实,最重要的是,你怕改变。



  • 相关阅读:
    apt-get指令的autoclean,clean,autoremove的区别
    储备的小站——更新中
    apk解包——修改后缀为zip
    Linux系统调用(syscall)原理(转)
    CMakeLists.txt的写法
    android 文件读取(assets)
    linux 如何显示一个文件的某几行(中间几行)
    Android四大组件的生命周期
    Android中View绘制流程以及invalidate()等相关方法分析(转)
    struct和typedef struct彻底明白了
  • 原文地址:https://www.cnblogs.com/james1207/p/3333780.html
Copyright © 2020-2023  润新知