V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sgissb1
V2EX  ›  问与答

make -jN, make -j 都容易异常啊,不得不回归 make

  •  
  •   sgissb1 · 2020-07-03 18:10:18 +08:00 · 1262 次点击
    这是一个创建于 1393 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在编译一些代码时,发现很容易出现多个 job 编出来的库或可执行文件会有奇奇怪怪的问题。就算先 make clean 也不行。
    而老老实实的 make 就没有这个问题。

    生产、编译环境又很老( 2014 年的 linux 开发、编译环境),所以没法升级。真心坑,这样下去,快要进入庄家模式了。。。。。
    5 条回复    2020-07-03 21:12:33 +08:00
    codehz
        1
    codehz  
       2020-07-03 18:33:41 +08:00 via Android
    这种多半是 makefile 没写对,依赖了某些副作用但是又没告诉 gnu make
    (举例:一条命令生成多个目标,但是只指定了其中一个
    optional
        2
    optional  
       2020-07-03 19:03:02 +08:00
    make clean 才会出问题啊,第一遍 make,然后增量用 make -j 不容易出问题
    CheekiBreeki
        3
    CheekiBreeki  
       2020-07-03 19:15:52 +08:00 via Android
    @optional make clean 我都重新 clone .....
    GeruzoniAnsasu
        4
    GeruzoniAnsasu  
       2020-07-03 19:21:28 +08:00
    通常是因为 makefile 的依赖没写好导致并行编译了互有依赖的过程

    比如本来 A 依赖 B 编译时自动生成的配置,B 没编译时用占位数据来代替,这样就并行就会编译出不正常的 A
    bitdepth
        5
    bitdepth  
       2020-07-03 21:12:33 +08:00 via iPad
    改用 ninja 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1133 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:41 · PVG 02:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.