V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
sgissb1
V2EX  ›  问与答

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

  •  
  •   sgissb1 · Jul 3, 2020 · 1629 views
    This topic created in 2128 days ago, the information mentioned may be changed or developed.
    最近在编译一些代码时,发现很容易出现多个 job 编出来的库或可执行文件会有奇奇怪怪的问题。就算先 make clean 也不行。
    而老老实实的 make 就没有这个问题。

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

    比如本来 A 依赖 B 编译时自动生成的配置,B 没编译时用占位数据来代替,这样就并行就会编译出不正常的 A
    bitdepth
        5
    bitdepth  
       Jul 3, 2020 via iPad
    改用 ninja 吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2572 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 06:09 · PVG 14:09 · LAX 23:09 · JFK 02:09
    ♥ Do have faith in what you're doing.