2014-10-19 31 views
-2

我用Eclipse開發Java項目。 Java項目可以包含許多帶有main函數(入口點)的代碼文件,因此我們可以運行每個具有main函數的代碼文件。用多個主入口點開發C

但現在我想通過Eclipse CDT開發C項目。 在C項目中,我們只能有一個main函數。我是否可以使用main函數獲得很多代碼文件,並像在Java中一樣運行每個文件?

P.S:我不喜歡寫使目標每個文件由主自

+0

我沒有發佈答案,因爲我只是谷歌搜索:它有點笨重 - Eclipse並沒有出現在Visual Studio的「解決方案」概念: http://tinyguides.blogspot.co.uk/2013/04/multiple-binaries-in-single-eclipse-cdt.html – Clifford 2014-10-19 12:40:45

回答

1

的Java類選項,主中的每個對象是高度刺激性和沒有意義了我。

我假設你想在c中訓練一下,並想找到一種方法在一個文件中進行所有的訓練課程。這裏有一個選項可以以粗略的方式爲你做到這一點。作爲一個應用程序來做這是不合理的,但是你可以用它來執行不同的選項。

要使用這個,你可以調用你的程序,如'程序名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。 這會減少實際工作量,因此需要將這些工作放在這裏,以便維護開關構造比創建新項目更困難。

0

感謝克利福德固定我的追求和球員誰回答

我已經自己解決了這個問題 這裏是我的解決方案:

#!/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運行 - >外部工具 - >外部工具配置 - >全新配置

Location: /home/xxxxx/gcc.sh 
Working Directory: (just let it be empty) 
arguments: ${resource_loc} 

然後你可以通過你的自定義命令運行C文件