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之前,因此出现了找不到库的情况。






免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM