我尝试通过调用以下方法来生成LLVM中间代码
llvm-gcc -emit-llvm -I/mypath/ -c main.c -o main.o如果我在终端中手动输入这个命令,它可以完美地工作,没有任何警告或错误。
然而,我已经建立了一个网站,可以通过调用PHP中的exec函数自动执行此过程,如下所示。
exec("llvm-gcc -emit-llvm -I/mypath/ -c main.c -o main.o",$msg,$ret);它仍将生成带有警告.o文件。警告说
Potential incompatible plugin version. GCC: 4.5.3. Expected: 4.5.4
Defines 'dragonegg_disable_version_check' as env variable to remove this warning.
Please note that unexpected errors might occur.php命令仍然会返回0,这是成功的。但是,当我运行生成的.o文件时,它将抛出无效的位码签名错误。
服务器运行的是ubuntu和Apache。我的llvm-gcc版本是2.9,使用的是4.2.1的gcc。
任何帮助都行。谢谢!
发布于 2014-02-02 07:35:43
最好的办法就是把GCC升级到4.5.4。但如果只想隐藏警告,只需定义dragonegg_disable_version_check即可。
$command = 'dragonegg_disable_version_check=1'
. ' llvm-gcc -emit-llvm -I/mypath/'
. ' -c main.c -o main.o';
exec($command,$msg,$ret);有关invalid bit code signature错误的信息,请参见此questions。
https://stackoverflow.com/questions/21504772
复制相似问题