gpt4 book ai didi

ios - C/XCode : sh: ./child : No such file or directory. 命令在终端中运行,但不在 XCode 中运行

转载 作者:行者123 更新时间:2023-11-29 02:11:56 25 4
gpt4 key购买 nike

所以我有一个 child.c 文件,我想使用 stdlib.h 的 system() 函数在我的 main.c 文件中编译和运行它。

child .c:

#include<stdio.h>
int main(){
printf("I am the child\n");
return 0;
}

主.c:

#include <stdio.h>
#include <stdlib.h>

int main() {
system("cd ~/Desktop/HW3/HW3");
system("gcc -o child child.c");
system("./child");
return 0;
}

当我使用以下命令在终端中编译并运行 main.c 时一切正常

abcs-mbp:HW3 abc$ cd
abcs-mbp:~ abc$ cd ~/Desktop/HW3/HW3
abcs-mbp:HW3 abc$ gcc -o main main.c
abcs-mbp:HW3 abc$ ./main

它运行 child.c 并打印以下内容:

I am the child

但是当我尝试在 XCode 中运行完全相同的 main.c 时,XCode 给了我以下错误:

clang: error: no such file or directory: 'child.c'
clang: error: no input files
sh: ./child: No such file or directory

有人知道为什么会这样吗?我认为它与路径有关,但我如何告诉 XCode child.c 的路径,然后告诉它编译 child.c?

我也试过

 system("cd ~/Desktop/HW3/HW3");
system("gcc -o child child.c");
system("./child");

system("/Users/vqianxiao/Desktop/HW3/HW3/ gcc -o child child.c");

但似乎没有任何效果......感谢任何帮助!

最佳答案

它不起作用的原因是多种因素的结合

1) each 'system' call is run in a separate shell instance, 
so the second 'system' call
starts from the directory where the main program is running.

2) things do down from there

建议的修复:

system("cd ~/Desktop/HW3/HW3; && gcc -o child child.c; && ./child;");

注意,所有一个系统调用,命令末尾的终止符,并由 && 链接,所以一个命令必须成功才能继续执行下一个命令

关于ios - C/XCode : sh: ./child : No such file or directory. 命令在终端中运行,但不在 XCode 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29201069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com