[請益] 利用system()呼叫g++編譯
我寫了一個cmd.php內容如下
<?php
$compiler="C:\Dev-Cpp\bin\g++.exe";
$code="C:\xampp\htdocs\project\tmp\a002.cpp";
$target="C:\xampp\htdocs\project\tmp\a.exe";
$command="C:\WINDOWS\system32\cmd.exe $compiler $code -o $target";
system($command);
?>
在cmd.exe裡面輸入過
"C:\Dev-Cpp\bin\g++.exe C:\xampp\htdocs\project\tmp\a002.cpp -o
C:\xampp\htdocs\project\tmp\a.exe"
有編譯成功 檔案也有出現
但用PHP呼叫就無法成功 只顯示
Microsoft Windows XP [版本 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.
C:\xampp\htdocs\Project>
的字樣 a.exe也沒有出現在資料夾裡
不知道是哪邊出了問題
另外我測試了用php system()去呼叫預先編譯好的exe檔
<?php
system('C:\xampp\htdocs\project\tmp\a.exe 5 10');
?>
這程式的功能是輸出兩個input的差值
但php網頁上沒有回傳任何結果
C++的程式長這樣
#include<iostream>
using namespace std;
int main()
{
long long int a,b,c;
while(cin >> a, cin >> b)
{
c=a-b;
if(c<0)
c=-c;
cout<< c<<endl;
}}
問題不知道出在哪邊 有請高手解答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.154.128
※ 編輯: saponevol23 來自: 114.39.154.128 (09/05 13:57)
→
09/05 14:53, , 1F
09/05 14:53, 1F
→
09/05 15:15, , 2F
09/05 15:15, 2F
推
09/05 15:28, , 3F
09/05 15:28, 3F
→
09/05 16:15, , 4F
09/05 16:15, 4F
→
09/05 20:35, , 5F
09/05 20:35, 5F
→
09/05 20:56, , 6F
09/05 20:56, 6F
→
09/05 22:37, , 7F
09/05 22:37, 7F
→
09/05 22:49, , 8F
09/05 22:49, 8F
→
09/05 22:50, , 9F
09/05 22:50, 9F
→
09/05 22:55, , 10F
09/05 22:55, 10F
不好意思 我又有新問題了="=
剛剛故意把cpp檔寫錯
想在網頁上看到php呼叫g++編譯後傳回來的錯誤訊息
但網頁上甚麼文字都沒有出現
這跟權限有關係嗎 另外我是用Windows
※ 編輯: saponevol23 來自: 114.39.154.128 (09/05 23:25)
→
09/07 11:31, , 11F
09/07 11:31, 11F
→
09/07 11:31, , 12F
09/07 11:31, 12F
但我嘗試過用passthru()來呼叫
輸入passthru(dir);的時候有顯示資料夾內容
改成編譯的路徑卻又沒有東西了
我的safe_mode有關掉 還是有哪些地方需要調整嗎?
※ 編輯: saponevol23 來自: 114.39.168.203 (09/07 14:37)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
151
156