如何在Windows平台上用PHP编译C/C++代码?

问题描述 投票:0回答:4

谁能帮我在 Windows 平台上用 PHP 编译 C++ 代码?我正在使用 Microsoft Visual C++ 6.0。

我尝试了以下我知道的选项,但没有一个起作用:

system('test.c') 
exec('test.c')

文件“test.c”已放置在我的 php/www/ 文件夹中。

我需要首先编译代码,这会生成 test.exe,然后使用 exec( ) 我需要运行 exe 文件。


编辑:

在这段代码“test.c”中,我正在读取文件“data.txt”。 data.txt 的内容每 5 秒更改一次。这就是为什么我首先需要用 PHP 进行编译,然后运行新的 exe 文件。

php c++ command-line compilation
4个回答
4
投票

创建一个 .bat 文件:

  • 运行Visual Studio附带的vcvars32.bat文件
  • 运行“cl.exe yourprogram.c”

然后从 PHP 启动该 .bat 文件。 (顺便说一句,不知道你会怎么做)


1
投票

您需要显式调用编译器(

cl.exe
)和链接器(参见编译器参考)或使用makefile(g++参考,但显示了要点)


1
投票

http://4answered.com/questions/view/7e1694/Compile-C-file-Using-PHP这可以帮助我编译和运行C程序(请参阅此链接上的视频)。使用这个我写了这个 php 代码并且它工作了

<?php

putenv("PATH=C:\\MinGW\\bin");
exec("gcc C:\\test\\q.c -o C:\\test\\q1.exe");
system("C:\\test\\q1.exe",$output);
echo $output;

我的QC

#include <stdio.h>

int main(int argc, char* argv[])
{
  printf("Hello world");
  return 0;
}

所以你会在 $output 中看到“Hello world0”


0
投票

我假设您想从 php 脚本调用编译器?

如果是这种情况,您首先必须调用编译器本身 - 而不仅仅是将源代码的文件名传递给系统。对于 MSVC++,您需要查找“cl.exe”。

此外,如果您的环境中没有设置相应的路径,则需要使用完整路径。

确保首先了解如何从命令提示符手动调用 cl.exe。 一旦理解了这一点,您就可以尝试从 php 脚本调用它。

但是,您需要意识到还需要考虑其他因素,例如编译文件所需的时间与超时之前允许执行 php 脚本的时间。

我认为,您可能需要向我们提供更多信息,说明您到底想做什么以及为什么要这样做。

© www.soinside.com 2019 - 2024. All rights reserved.