Ubuntu 16.04編譯Yak源碼,並使用Eclipse IDE for C/C++ Developers作爲工具調試

 步驟和鏈接 https://blog.csdn.net/qq_34621987/article/details/87872704 類似,不同之處在於

 1. 編譯Yak而不是OpenJDK,Yak源碼鏈接 鏈接: https://pan.baidu.com/s/109i34OZwZZqsZv8aKxED6g 密碼: cfuz

 2. make all時出現錯誤:

    recipe for target 'ad_stuff' failed
     make[5]: *** [ad_stuff] Error 2

    解決辦法:由於make4.x的原因,make時會出現以上錯誤

    修改hotspot/make/linux/makefiles/adjust-mflags.sh文件,加上兩個I
    

echo "$MFLAGS" \
    | sed '
        s/^-/ -/
-       s/ -\([^    ][^     ]*\)j/ -\1 -j/
+       s/ -\([^    I][^    I]*\)j/ -\1 -j/
        s/ -j[0-9][0-9]*/ -j/
        s/ -j\([^   ]\)/ -j -\1/
        s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/

3. 編譯完進入bin目錄後輸入./java -version出現錯誤

 Error: dl failure on line 864 Error: failed /mnt/jdk8/build/linux-x86_64-normal-server-release/jdk/lib/amd64/server/libjvm.so, because /mnt/jdk8/build/linux-x86_64-normal-server-release/jdk/lib/amd64/server/libjvm.so: undefined symbol: _ZN23G1SATBCardTableModRefBS24write_ref_array_pre_workIP7oopDescEEvPT_i 

因爲之前去掉了步驟2中adjust-mflags.sh的這一行,導致編譯出現錯誤

s/ -\([^    ][^     ]*\)j/ -\1 -j/

因此按照步驟2中操作進行編譯不會出現上述錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章