Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας παιδιά,

       θα ήθελα τη βοήθειά σας!

Μόλις έβαλα gcc και g++ 4.8.1 και θέλω να τρέξω ένα πρόγραμμα με C++11.

Το θέμα είναι ότι δεν δουλεύει με τίποτα.

Κάνω ένα απλό πρόγραμμα hello World και δεν κάνει compile.

με τον gcc όλα δουλεύουν μια χαρά για .c προγράμματα. Με τον g++ κάνει compile και όταν τρέχω το πρόγραμμα (.cpp) το εκτελεί και στο τέλος κρασάρει χωρίς λόγο. Αυτό μου συμβαίνει και σε Windows και σε Ubuntu αντίστοιχα.

Υποψιάζεται κανείς τι γίνεται? Έψαξα αρκετά στο Google και προσπάθησα να βάλω flags όπως

το -std=c++11 κ.α.

 

Πιο συγκεκριμένα στα windows δεν δούλεψε με τίποτα. Στο linux κατάφερα μέσω terminal να

το τρέξω προσθέτοντας το flag -lstdc++  αλλά με Eclipse καμία τύχη.

Please Help!

 

Στα windows έχω εγκαταστήσει την τελευταία έκδοση minGW.

Δημοσ.

Ο κώδικας είναι ο κλασικός για ένα απλό Hello World.

 

Στο Windows έτρεξα g++ -O3 main.cpp -o main.exe μέσω cmd και δούλεψε.

Στο linux δούλεψε με g++ main.cpp -lstdc++ μέσω terminal.

 

To eclipse εξακολουθεί να μη μου δουλέυει ενώ έχω βάλει τα flags στις ρυθμίσεις :/

 

Επιπλέον θέλω να τρέξω προγράμματα με την βιβλιοθήκη pthreads.
Εκτός απο το να προσθέσω το flag -std=c++11 και -pthread που πρέπει να βάλω το αρχείο που κατεβάζω απο

 

Link.png Site: εδώ ?

Δημοσ. (επεξεργασμένο)

Το απλό Hello World δεν νομίζω να είναι C++11 only. Κάτι αλλο κανεις λάθος. Τι errors σου βγάζει;

Επεξ/σία από bnvdarklord
Δημοσ.

Ναι τα έχω προσθέσει τα paths!

C:\MinGW\bin; και C:\MinGW\msys\1.0\bin;

 

 

Στο Linux έκανα επανεγκατάσταση του gcc & g++ και δουλεύει μια χαρά!

 

Το θέμα μου τώρα είναι ότι ενώ τρέχει το πρόγραμμα το Eclipse μου υπογραμμίζει ότι εντολή έχει να κάνει με threads λέγοντας "_ could not be resolved"

Μπορώ να κάνω κάτι για αυτό (εκτος απο το να βάλω το Eclipse να μη με ειδοποιεί για Semantic λάθη :P )

 

Ορίστε και τι εννοώ:

 

post-217696-0-23560500-1384452195_thumb.png

 

post-217696-0-12263100-1384452190_thumb.png

Δημοσ.

Το έχω κάνει αυτό το φίλε μου, αυτό ειναι το περίεργο :/

 

-----------------edit----------------------------------------------------------------------------


αυτό που παρατηρώ είναι ότι μπορώ να τρέξω σε C αλλά όχι σε C++
 

Δηλαδή

αυτό τρέχει:

#include <iostream>
#include <pthread.h>
using namespace std;

#if defined(__cplusplus)
extern "C"
#endif
void *print_message(void*)
{
    cout << "Threading\n";
}



int main()
{
    pthread_t t1;

    pthread_create(&t1, NULL, &print_message, NULL);
    cout << "Hello";

    void* result;
    pthread_join(t1,&result);

    return 0;
}

αυτό επίσης τρέχει αλλά μου κοκκινίζει ότι έχει να κάνει με threads μέσα στη main :

#include <iostream>
#include <thread>
using namespace std;

void hello(){
	cout<<"Hello Thread"<<endl;
}

int main() {
	thread a(hello);
	a.join();
	thread b(hello);
	b.join();
	cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
	return 0;
}
Δημοσ.

H pthread είναι POSIX specific, κι από ότι θυμάμαι ο mingw δεν παρέχει Windows port. Μπορείς όμως να δοκιμάσεις την pthread-win32 (διάβασε πρώτα τους περιορισμούς της).

 

Βεβαιώσου επίσης πως το -lpthread είναι το τελευταίο command-line flag.

Δημοσ.

Με λόγια αυτό που γίνεται τώρα είναι ότι  μπορώ να κάνω compile πρόγραμμα με threads του c++11 standard αλλά το Eclipse μου υπογραμμίζει κάθε εντολή αυτού του lib

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...