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





posted on 2014-05-21 10:10  techsunny  阅读(5641)  评论(0编辑  收藏  举报

导航