2013-07-18 174 views
0

我正在使用Bruce Eckel的書「Thinking in C++:Volume 1」練習C++。它是一個使用system()命令調用其他程序的小程序。我已經在練習文件夾中編譯了一個腳本「Hello.cpp」,其中包含對象文件「Hello」。我試圖去工作的代碼,可以在書(這是免費的互聯網,只是谷歌的標題和作者的)的108頁上找到,並去如下:使用C++中的system()調用其他程序

//: cplusplus:CallHello.cpp 
// Call another program 
#include <cstdlib> //Declare "system()" 
using namespace std; 

int main(){ 
    system("Hello"); 
}///:~ 

當我運行這個代碼中,我得到的錯誤:

sh: 1: Hello: not found 

「HELLO.CPP」是在目錄中,並已關聯的對象文件「你好」,它運行完全正常。這裏有什麼問題?

編輯:試圖解決問題,不工作如下:更改爲「Hello.o」或「Hello.exe」;將包含的頭文件從更改爲。

編輯:經過更徹底的閱讀後,我發現爲什麼代碼沒有工作。基本上,函數system()的參數在命令行上執行一個命令。

+0

你使用什麼操作系統?此外,你說你的'你好'的應用程序'完美運行'。你如何運行它? – shakurov

回答

0

對我的部分進行猜測但試試system(「./ Hello」);

它聞起來像一個路徑問題。

你想運行的bin是「Hello」而不是「Hello.exe」或「Hello.a」或「Hello.elf」或其他什麼,是的?

+0

「你想運行的bin是」Hello「,而不是」Hello.exe「或」Hello.a「或」Hello.elf「或其他什麼,是的?你看,我其實不知道,我是一個總計新手 – user2596226

+0

謝謝,它的工作!我仍然想知道爲什麼Eckel在他的書中有這樣的代碼。 – user2596226

+0

進入您的Hello二進制文件所在的目錄。做一個「dir」或「ls」或任何你的系統所期望的。什麼是文件的全名?它是否顯示爲有擴展名,也許? 儘管首先嚐試./的東西。讓我們消除這一點,如果不能解決問題,我們可以排除更多故障。 –

0

如果Hello是一個可執行文件,那麼使用system(「./Hello」);

如果你有目錄中的源代碼來執行可執行文件並不重要

相關問題