Καταρχήν βλέπω πως στο πηγαίο αρχείο τη συνάρτηση την ονομάζεις 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, κλπ κλπ


