我曾经用Eclipse开发Java项目。
Java项目可以包含许多带有main
函数(入口点)的代码文件,因此我们可以运行具有main
函数的每个代码文件。
但现在我想通过Eclipse CDT开发C项目。
在C项目中,我们只能有一个main
函数。我可以拥有许多带有main
函数的代码文件,并像在Java中一样运行每个文件吗?
P.S。:我不想为自己的每个文件写 Make Target
答案 0 :(得分:1)
Javas选项在每个对象中都有一个主要部分是非常恼人的,对我来说没有意义。
我假设您想要训练一下c并希望找到一种方法将所有训练课程放在一个文件中。这是一个选择,可以粗略地为您做到这一点。这不适合作为应用程序,但您可以使用它来执行不同的选项。
要使用此功能,您可以将您的程序称为'progname 1'。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int ProgrammingLesson001(void);
int main(int argc, char * argv[])
{
int i;
int option;
int e = 0;
printf("%i\n", argc);
for(i = 0; i < argc; ++i)
{
printf("%s\n", argv[i]);
}
if(2 == argc)
{
option = atoi(argv[1]);
printf("Your Option was '%s' interpreted as %i\n", argv[1], option);
}
else
{
option = 0;
e |= 1;
}
switch(option)
{
case 0:
printf("zero is an error\n");
e |= 1;
break;
case 1:
e |= ProgrammingLesson001();
break;
default:
break;
}
if(0 != e)
{
printf("an error has occureed\n");
}
return e;
}
int ProgrammingLesson001(void)
{
printf("This could behave like a main for training purposes\n");
}
如果您花了一些时间在c中编程,请再看一下makefile。 您可以创建适合所有程序的makefile。 这减少了您需要投入的实际工作,以至于维护交换机构造比创建新项目更困难。
答案 1 :(得分:0)
感谢Clifford修复我的任务和回复
的人我自己解决了这个问题 这是我的解决方案:
#!/bin/bash
SourceFile=$1
Path="$(dirname "$SourceFile")"
ParentPath="$(dirname "$Path")"
OutputPath="$ParentPath/bin"
OutputFile="$OutputPath/a.out"
mkdir -p $OutputPath
rm -f $OutputFile
gcc -w $SourceFile -lm -o $OutputFile
$OutputFile
这个bash的名字是gcc.sh
在eclipse中运行 - &gt;外部工具 - &gt;外部工具配置 - &gt;新配置
Location: /home/xxxxx/gcc.sh
Working Directory: (just let it be empty)
arguments: ${resource_loc}
然后您可以通过自定义命令
运行C文件