Δημοσιεύτηκε: 25 Ιαν 2012, 01:41
από migf1
Καλησπέρα.

Καταρχήν βλέπω πως στο πηγαίο αρχείο τη συνάρτηση την ονομάζεις calculation() αλλά στο header αρχείο την λες: calculator(). Οπότε, το 1ο που πρέπει να κάνεις είναι διορθώσεις αυτό, κι επίσης μέσα στο header file βάλε και το keyword extern πριν από το int στη δήλωση της συνάρτησης, που σημαίνει πως αυτή η συνάρτηση θα μπορεί να χρησιμοποιηθεί και σε πηγαία αρχεία που δεν περιέχουν τον ορισμό της ;)

Έπειτα, για αρχή δοκίμασε να το κάνεις στατική βιβλιοθήκη και όχι shared. Ακόμα καλύτερα, για αρχή δοκίμασε το με σκέτο το object file.

Δηλαδή...

Κώδικας: Επιλογή όλων

gcc -c calculator.c

Κατόπιν, στο πηγαίο αρχείο του άλλου προγράμματος, το cal_mean.c βάλε...

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include "calculator.h"

int main( void )
{
printf( "%d\n", calculator( 10, 4, 1);
return 0;
}

Και κάνε το compile...

Κώδικας: Επιλογή όλων

gcc calc_mean.c calculator.o

Λογικά θα σου δουλέψει, το τεστάρεις με...

Κώδικας: Επιλογή όλων

./a.out

Και ξεκινά το μετά από εκεί σύμφωνα με τα βήματα που έχω γράψει στο προηγούμενο ποστ, για να το κάνεις μια στατική βιβλιοθήκη: libcalculator.a, κλπ κλπ ;)