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