Problima sto linking se c++ project xrisimopoiwntas eclipse

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Problima sto linking se c++ project xrisimopoiwntas eclipse

Δημοσίευσηαπό balios » 31 Δεκ 2010, 01:29

Exw kanei ena test project gia na tsekarw an douleuei to linking mesw tou eclipse
Κώδικας: Επιλογή όλων
1.main.cpp
#include <stdio.h>
#include <stdlib.h>
#include "test.h"


int main(void) {

showI();//emfanizei tin timi mias global (over multiple files ) variable
increaseI();//auksanei tin timi autis tis globalvariable
i++;
showI();


return EXIT_SUCCESS;
}

2.test.h
#ifndef TEST_H_
#define TEST_H_

extern int i;
void showI();
void increaseI();

#endif /* TEST_H_ */

3.test.cpp

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#include "test.h"

int i;

void showI()
{

cout<<"i= "<<i<<endl;
}

void increaseI()
{
i++;
cout<<"i 've increased i ="<<i<<endl;
}

Otan kanw to run mesa apo eclipse mou emfanizei to lathos
Κώδικας: Επιλογή όλων
undefined reference to `showI()

enw an dokimasw na to kanw compile mesa apo terminal
Κώδικας: Επιλογή όλων
g++ main.cpp test.cpp -test.exe

kai run ./test.exe den mou
bgazei kanena lathos alla mou emfanizei swsta
Κώδικας: Επιλογή όλων
i= 0
i 've increased i =1
i= 2
Τελευταία επεξεργασία από Epirotes και 31 Δεκ 2010, 01:37, έχει επεξεργασθεί 2 φορά/ες συνολικά
Αιτία: Διόρθωση ΒΒCode
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
1)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 9.10 se dikis mou sinthesis pc
Προδιαγραφές ⇛Intel i7 2.80│2GB DDR3 1066Mhz │ NVidia GeForce 240GT│ Κάρτα Ασύρματη │ Κάρτα Buetooth │ OnBoard │ 1920x1080
2)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 8.04 pros to paron me problimata SONY VAIO VPCEB1J1E
Προδιαγραφές ⇛Intel i3 2.13│4GB RAM │ Intel Graphics│ atheros ar9285 │
balios
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 24 Απρ 2010, 21:26
Εκτύπωση

Re: Problima sto linking se c++ project xrisimopoiwntas ecli

Δημοσίευσηαπό Epirotes » 31 Δεκ 2010, 01:35


!

Μήνυμα συντονισμού πρός τον/την balios

Σε παρακαλούμε να διαβάσεις τις οδηγίες προς νεοεισερχόμενους προσεκτικά. Όλες οι δημοσιεύσεις πρέπει να είναι σε λιτά πεζά ελληνικά, δηλ. όχι greeklish (εκτός αν δεν λειτουργούν τα ελληνικά), όχι κεφαλαία (φαίνεται ότι φωνάζεις), όχι ξένη γλώσσα (εκτός αν υπάρχει ανάγκη), όχι χωρίς λόγο πολλά χρώματα, bold, κλπ. Για αυτούς τους λόγους, κάνε τις απαραίτητες αλλαγές στην δημοσίευση σου.

Σε παρακαλώ λοιπόν να επεξεργαστείς την δημοσίευσή σου και τον τίτλο της και να τα γράψεις σε Ελληνικά!


Eπίσης των κώδικα να τον βάζεις μέσα σε code tags μελλοντικά!

Επιλέγεις το κείμενο και πατάς το κουμπί (αριστερά δίπλα από τον γλόμπο που λέει Προβολή κώδικα, δηλ. κάπως έτσι:
Κώδικας: Επιλογή όλων
[code]κείμενο[/code]
Οδηγίες για νέα μέλη ---- Οδηγοί - How to - Tutorials
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu 16.04 precise 64bit (el_GR.UTF-8), Windows 10
3 Intel Core2 Duo CPU E8400 3.00GHz ‖ RAM 8 GB ‖ Gigabyte X48-DS4
4 Advanced Micro Devices [AMD] nee ATI Caicos [Radeon HD 6450] [1002:6779]
5 eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 02)
Άβαταρ μέλους
Epirotes
superbTUX
superbTUX
 
Δημοσιεύσεις: 3185
Εγγραφή: 05 Νοέμ 2008, 00:25
Τοποθεσία: Ιωάννινα, Ήπειρος
Εκτύπωση

Πρόβλημα στο linking se c++ project χρησιμοποιώντας eclipse

Δημοσίευσηαπό balios » 02 Ιαν 2011, 18:08

'Εχω κάνει ένα test project για να τσεκάρω αν δουλεύει το linking μέσω του eclipse
Κώδικας: Επιλογή όλων
1.main.cpp
#include <stdio.h>
#include <stdlib.h>
#include "test.h"


int main(void) {

showI();//emfanizei tin timi mias global (over multiple files ) variable
increaseI();//auksanei tin timi autis tis globalvariable
i++;
showI();


return EXIT_SUCCESS;
}

2.test.h
#ifndef TEST_H_
#define TEST_H_

extern int i;
void showI();
void increaseI();

#endif /* TEST_H_ */

3.test.cpp

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#include "test.h"

int i;

void showI()
{

cout<<"i= "<<i<<endl;
}

void increaseI()
{
i++;
cout<<"i 've increased i ="<<i<<endl;
}


Όταν το κάνω run μέσα απο eclipse μου εμφανίζει το λάθος
undefined reference to `showI()

ενώ όταν δοκιμάσω να το κάνω compile μέσα από command line
g++ main.cpp test.cpp -test.exe

Και run ./test.exe δεν μου εμφανίζει κανένα λάθος αλλα μου εμφανίζει σωστά
i= 0
i 've increased i =1
i= 2

οπότε υποθέτω ότι είναι πρόβλημα στο Linking ποθ γίνεται απο το eclipse προφανώς δεν έχω ρυθμίσει
σωστά κάποιες παραμέτρους.
Γνωρίζει κανένας πώς μπορώ να λύσω το πρόβλημα?
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
1)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 9.10 se dikis mou sinthesis pc
Προδιαγραφές ⇛Intel i7 2.80│2GB DDR3 1066Mhz │ NVidia GeForce 240GT│ Κάρτα Ασύρματη │ Κάρτα Buetooth │ OnBoard │ 1920x1080
2)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 8.04 pros to paron me problimata SONY VAIO VPCEB1J1E
Προδιαγραφές ⇛Intel i3 2.13│4GB RAM │ Intel Graphics│ atheros ar9285 │
balios
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 24 Απρ 2010, 21:26
Εκτύπωση

Re: Problima sto linking se c++ project xrisimopoiwntas ecli

Δημοσίευσηαπό konnn » 02 Ιαν 2011, 20:51

Απ' ό,τι καταλαβαίνω έχεις φτιάξει μια δική σου βιβλιοθήκη που την ζητάς στην αρχή του κώδικά σου. Υποθέτω πως πρέπει να δώσεις στο eclipse ένα path , κάτι σαν Additional Library Directories ή Additional Dependencies. Δλδ να βλέπει και τη δική σου lib. Δε το γνωρίζω το πρόγραμμα. Ίσως κάποιος που το ξέρει καλύτερα να πει εάν είναι και έτσι.
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Problima sto linking se c++ project xrisimopoiwntas ecli

Δημοσίευσηαπό balios » 02 Ιαν 2011, 21:32

Οχι δεν έχω κάνει κάποια δική μου βιβλιοθήκη απλά θέλω να χωρισω τον κώδικα μου σε πολλά αρχεία
για να μην μπερδευομαι.
όλα τα αρχεία(.h,.cpp) βρισκονται στον ίδιο φάκελο
εξάλλου όπως ανέφερερα μέσα απο command line παίζει κανονικά
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
1)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 9.10 se dikis mou sinthesis pc
Προδιαγραφές ⇛Intel i7 2.80│2GB DDR3 1066Mhz │ NVidia GeForce 240GT│ Κάρτα Ασύρματη │ Κάρτα Buetooth │ OnBoard │ 1920x1080
2)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 8.04 pros to paron me problimata SONY VAIO VPCEB1J1E
Προδιαγραφές ⇛Intel i3 2.13│4GB RAM │ Intel Graphics│ atheros ar9285 │
balios
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 24 Απρ 2010, 21:26
Εκτύπωση

Re: Problima sto linking se c++ project xrisimopoiwntas ecli

Δημοσίευσηαπό konnn » 02 Ιαν 2011, 21:40

Το "test.h" που συμπεριλαμβάνεις στην αρχή τι είναι?
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Problima sto linking se c++ project xrisimopoiwntas ecli

Δημοσίευσηαπό balios » 03 Ιαν 2011, 18:54

Ok αν θεωρησουμε το test.h σαν μια βιβλιοθήκη στην ουσία αν κοιτάξεις τον κώδικα
στο test δηλώνονται 2 συναρτήσεις η increaseI() και η showI() οι οποίες υλοποιούνται μέσα στο
test.cpp .Tο header file που γίνεται included μέσα στη main είναι το test.h οπως έχω πεί πριν.
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
1)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 9.10 se dikis mou sinthesis pc
Προδιαγραφές ⇛Intel i7 2.80│2GB DDR3 1066Mhz │ NVidia GeForce 240GT│ Κάρτα Ασύρματη │ Κάρτα Buetooth │ OnBoard │ 1920x1080
2)Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 8.04 pros to paron me problimata SONY VAIO VPCEB1J1E
Προδιαγραφές ⇛Intel i3 2.13│4GB RAM │ Intel Graphics│ atheros ar9285 │
balios
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 24 Απρ 2010, 21:26
Εκτύπωση

Re: Problima sto linking se c++ project xrisimopoiwntas ecli

Δημοσίευσηαπό konnn » 03 Ιαν 2011, 19:29

Οκ, μπορεί να δηλώνονται μέσα στην main.cpp αλλά μπορεί το eclipse να ζητά path για αυτό διότι όταν αρχίζει να αναζητά την "test.h" δε τη βρίσκει στο σύνολο των libs ,όταν πάει να κάνει σύνδεση , κάτι που δε χρειάζεται να κάνει το τερματικό. Αυτή είναι η γνώμη μου, μπορεί να είναι και λάθος.
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση


Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι