0

Bruce Eckel 著「Thinking in C++: Volume 1」という本を使用して C++ を練習しています。これは、system() コマンドを使用して他のプログラムを呼び出す小さなプログラムです。私は既にスクリプト "Hello.cpp" をオブジェクト ファイル "Hello" と共に私の練習用フォルダーにコンパイルしました。私が作業しようとしているコードは、本の108ページにあり(インターネット上で無料で、タイトルと著者をグーグルで検索するだけです)、次のようになります。

//: 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」が関連付けられており、完全に正常に動作します。ここで何が問題なのですか?

編集: 機能しなかった問題の解決策は次のとおりです。「Hello.o」または「Hello.exe」に変更します。インクルードされたヘッダー ファイルを から に変更します。

編集:より徹底的に読んだ後、コードが機能しない理由を発見しました。基本的に、関数 system() の引数は、コマンド ラインでコマンドを実行します。

4

2 に答える 2

0

Hello が実行可能ファイルの場合は、system("./Hello"); を使用します。

実行可能ファイルを実行するディレクトリにソースコードがあるかどうかは関係ありません

于 2013-07-18T15:44:30.147 に答える
0

私の勝手な推測ですが、system("./Hello"); を試してみてください。

パスの問題のようなにおいがします。

そして、実行したいビンは「Hello」であり、「Hello.exe」、「Hello.a」、「Hello.elf」などではありません。

于 2013-07-18T15:45:31.810 に答える