No working C compiler found

在CI服務器上編譯x264,configure時出現「 No working C compiler found」的詭異錯誤,說詭異是由於該項目在本身電腦上編譯過n多遍了,沒有遇到過。

./configure --enable-shared --enable-pic --disable-cli --prefix=/data/project/ENC4100/build/../3rdparty --extra-cflags="-fPIC -DENABLE_LMSDK" --extra-ldflags="-L/data/project/ENC4100/build/../3rdparty/lib -lintel_encode -lva -lva-drm -lmfxhw64"
No working C compiler found.

在網上搜了下有人說和編譯器沒安裝好有關係,但試了下編譯其它代碼沒有問題,而且系統和編譯器安裝命令都是用過屢次的,這個環節出問題的可能性很小。

再對比發現彷佛和--extra-ldflags參數有關,開始一直懷疑編譯腳本中雙引號用的不規範,在不一樣機器上結果有差別形成的,追蹤了半天沒找到緣由。

後來單獨將編譯命令提取出來在shell中執行,發現錯誤依然存在。而後將命令拷貝到本機執行,依然存在,這回就好辦了。

在本機上用編譯腳本執行,仍是不出錯。再次提取本機編譯腳本的命令行和服務器的對比,發現只有-L路徑不同。至此能夠肯定和路徑有關係了,進一步想到是configure時用 --extra-ldflags的參數編譯測試程序連接不成功緻使的。檢查-L的路徑發現果真libmfxhw64.so庫不存在,緣由是近期調整工程目錄,將git上3rdparty/lib中的預置庫刪除了,改爲編譯時拷貝或生成,但編譯x264的步驟在拷貝 libmfxhw64.so以前,所以出現了找不到庫的狀況。



相關文章
相關標籤/搜索