Eclipse multi main function

Imam eclipse i net beans na mandrivi 2010 free. E sad i u jednom i drugom kada radim moram napraviti new project pa u njih ubacivati c++ empty file, u kojima kucam neke programcice za faks. E sad je problem kad npr. imam u projektu 2 programa, npr program pomnozi_dva_broja a drugo saberi_dva broja (lupam) ne mogu kompajlirati project jer mi prijavi da imam dvije main funkcije, sto je i normalno jer svaki od ovih programa je mora imati a project ne dozvoljava da postoje 2 fajla sa main funkcijom.

Zanima me mogu li se ovi programcici nekako zasebno kompajlirati jer hocu npr da imam jedan TestProject i u njega da stavljam vise programa. Da ne pravim za svaku glupost novi project ili da izbacujem program koji trenutno ne koristim.

Imao sam isti problem, c++ programi za faks…Prvo sam zbog auto-completion funkije programa pisao sve u anjuti(kasnije netbeans) a onda kopirao to u poseban c++ file te kompajlirao iz terminala sa g++…poslije mi je dojadilo da kopiram stalno pa sam poceo sve da pisem u gedit-u, i meni je funkcionalno bilo posto su svi programi bili max 500 linija koda…E sad trenutno pokusavam da se snalazim u Vim-u…ne znam da li ce ti ovo sta pomoc, ali ja sam tako rijesio problem…

obicno kompajliram iz terminala, a pisem u gedit-u. ispadne da je prakticnije. netbeans palim kad radim sa multiple fileovima koji su medjusobno povezani. kad imam par klasa i hrpu funkcija bolje mi je strpat sve u header fileove pa samo ukljucivam u glavni c source. ne moras praviti uvijek novi file za neke stvari koje testiras. komentari su mocna stvar //… i //

Komentari? Pa to je potpuno neprakticno. A za ukljucivanje u gl. source fajl znam ali ne treba mi to. Ne radi se o tome.

btw imate i codeblocks

naravno možete probati i netbeans, zašto ne pohvaliti naše OSS kolege koje su nam ovo napravili :slight_smile:

pa rijec je o tome sto netbeans ne moze imati vise c fileova sa main funkcijom definiranom. al nisam naletio ni na jedan IDE koji to dopusta. nisam probao codeblocks. vjerojatno je odlican al dosta meni netbeans :).

pa zar može da bude više main funkcija :slight_smile:

http://en.wikipedia.org/wiki/Main_function_%28programming%29

ps:
nisam u C/C++ folu, kad sam to učio, koliko se sjećam učili su nas da imamo samo jednu main() funkciju :slight_smile:

Pa to je poenta projekta, svi fajlovi koji su u projektu se kompajliraju i linkuju zajedno i ne mogu imati dvije funkcije koje se isto zovu. Ako nećeš da fajlovi budu dio istog programa, onda praviš novi projekat. Sva ta okruženja su pravljena za ozbiljne projekte gdje se ne mijenja projekat svakih pet minuta i programi su duži od 500 linija koda. Učenje programiranja im jednostavno nije ciljna publika.
Šta ćeš, pravi projekte ili koristi neki jednostavan editor.

btw. u Javi na ovaj način radi (dvije main funkcije)

[code]//: c06:Detergent.java
// Inheritance syntax & properties.
import com.bruceeckel.simpletest.*;

class Cleanser {
protected static Test monitor = new Test();
private String s = new String(“Cleanser”);
public void append(String a) { s += a; }
public void dilute() { append(" dilute()"); }
public void apply() { append(" apply()"); }
public void scrub() { append(" scrub()"); }
public String toString() { return s; }
public static void main(String[] args) {
Cleanser x = new Cleanser();
x.dilute(); x.apply(); x.scrub();
System.out.println(x);
monitor.expect(new String[] {
“Cleanser dilute() apply() scrub()”
});
}
}

public class Detergent extends Cleanser {
// Change a method:
public void scrub() {
append(" Detergent.scrub()");
super.scrub(); // Call base-class version
}
// Add methods to the interface:
public void foam() { append(" foam()"); }
// Test the new class:
public static void main(String[] args) {
Detergent x = new Detergent();
x.dilute();
x.apply();
x.scrub();
x.foam();
System.out.println(x);
System.out.println(“Testing base class:”);
monitor.expect(new String[] {
"Cleanser dilute() apply() " +
“Detergent.scrub() scrub() foam()”,
“Testing base class:”,
});
Cleanser.main(args);
}
} ///:~[/code]

[quote]Second, both Cleanser and Detergent contain a main( ) method. You can create a main( ) for each one of your classes, and it’s often recommended to code this way so that your test code is wrapped in with the class. Even if you have a lot of classes in a program, only the main( ) for the class invoked on the command line will be called. (As long as main( ) is public, it doesn’t matter whether the class that it’s part of is public.) So in this case, when you say java Detergent, Detergent.main( ) will be called. But you can also say java Cleanser to invoke Cleanser.main( ), even though Cleanser is not a public class. This technique of putting a main( ) in each class allows easy unit testing for each class. And you don’t need to remove the main( ) when you’re finished testing; you can leave it in for later testing.

Here, you can see that Detergent.main( ) calls Cleanser.main( ) explicitly, passing it the same arguments from the command line (however, you could pass it any String array).[/quote]

Ovo bi ti bilo kao kad bi kompajlirao navedene pomnozi_dva_broja.c i saberi_dva broja.c, zatim ih zipovao u brojevi.zip i imao program (recimo xy brojevi.zip pomnozi_dva_broja) koji bi u pozadini unzipovao dati entry i pokrenuo ga. Sta vise, slicno i java radi.

…ali ti ni dalje ne mozes imati dvije main() funkcije i jednoj te istoj klasi, sto je ekvivalentno sa datim C++ problemom :stuck_out_tongue:

u eclipse je moguce imati u jednom projektu dvije klase sa main metodama(znam za javu barem), i onda se prilikom startanja projekta bira koja klasa je entry point. na osnovu toga predpostavio bih da je moguce to isto nekako izvesti i sa c++ u eclipse