これに似た質問があるかもしれないことは知っていますが、それらは C++ にあるだけで、同じかどうかはわかりません。私はいくつかのコードを持っています
void BuildApp(char *AppName)
{
char *cmd;
cmd = combine("mkdir ./Projects/", AppName);
cmd = combine(cmd, "/Package/");
// Make the package dir.
system(cmd);
cmd = "";
cmd = combine("mkdir ./Projects/", AppName);
cmd = combine(cmd, "/Package/DEBIAN");
system(cmd);
cmd = "";
cmd = combine("mkdir ./Projects/", AppName);
cmd = combine(cmd, "/Package/Applications");
system(cmd);
cmd = "";
cmd = combine("mkdir ./Projects/", AppName);
cmd = combine(cmd, "/Package/Applications/");
cmd = combine(cmd, AppName);
cmd = combine(cmd, ".app");
system(cmd);
cmd = "";
cmd = combine("mkdir ./Projects/", AppName);
cmd = combine(cmd, "/Package/Applications/");
cmd = combine(cmd, AppName);
cmd = combine(cmd, ".app/Inc");
system(cmd);
cmd = "";
cmd = combine("cp ./Projects/", AppName);
cmd = combine(cmd, "/Assets/app.icon.png ./Projects/");
cmd = combine(cmd, AppName);
cmd = combine(cmd, "/Package/Applications/");
cmd = combine(cmd, AppName);
cmd = combine(cmd, ".app/Icon.png");
system(cmd);
printf("Building application...");
cmd = "";
cmd = combine("cd ./Projects/", AppName);
system(cmd);
printf(cmd);
cmd = "";
cmd = combine("gcc App.c -o ", AppName);
printf(cmd);system(cmd);
system(cmd);
}
しかし、順不同で実行されているようです。これは Linux (実際には cygwin) で実行され、GCC でコンパイルされています。何らかの理由で、system();
GCC コンパイル アクションを実行する必要がある関数がcd
コマンドの前に実行され、次の出力が得られます。
gcc: App.c: No such file or directory
gcc: no input files
Building application...
cd ./Projects/Sample
しかし、cd
ステートメント (実行される順序を確認するために印刷したもの) の後、GCC コンパイル コマンドが実行されず、コンパイルされていない App.c が残り、プログラムの実行時にエラーが発生します。なぜこれが起こっているのかについての助けをいただければ幸いです。