我正在使用Xcode进行c编程。我有一个名为system_commands的项目。在这个项目中,我有一个文件A和一个文件B.
这是文件A:
int main(int argc, char *argvector[])
{
char *arguments[] = {"./runProcesses","Hello","World",NULL};
execvp("./runProcesses", arguments);
return 0;
}
文件A只是“执行”文件B,文件B在这里:
int main(int argc, char *argvector[])
{
for(int i = 0; i < argc; i++)
{
printf("%s", argvector[i]);
}
//some forks etc
}
显然,Xcode不允许这样做,因为项目中有两种主要方法。但是有某种解决方法吗?我是否真的必须创建另一个项目,以便文件驻留在不同的项目中? 或者有没有办法execvp()没有main方法的文件?
答案 0 :(得分:8)
如果你不想要两个项目,你可以创建第二个目标(&#34;文件&#34; - &#34;新&#34; - &#34;目标......&#34 ;并为您的第二个程序选择另一个&#34;控制台应用程序&#34;)。把你的另一个main.c
放在那里:
您还可以转到第一个控制台应用程序的目标设置,并为第二个控制台应用程序添加依赖项,这样,只要您运行第一个控制台应用程序,它就会构建第二个控制台应用程序。
坦率地说,当你有一个带有一些共享代码库的应用程序时,会设计这种多目标方法,但也可以在这种情况下使用它。
另一种方法是继续进行并拥有多个项目,但在单个&#34;工作区&#34;下工作。因此,创建一个文件夹,在该文件夹中创建两个项目,然后创建一个&#34;工作区&#34; (我在下面的示例中调用了#34; MyProject&#34;)并为两个单独的项目添加了两个xcodeproj
文件(&#34; FirstApp&#34;和#34; SecondApp&#34 ;在下面的例子中。)
所以,在Xcode中它看起来像:
在文件系统中,它看起来像:
因此,在这种情况下,您有两个项目,但您可以在一个工作区下一起使用它们,这使得同时使用这两个项目变得非常容易。只需打开xcworkspace
工作区而不是单个xcodeproj
文件。