portable shared libraries

Antonis Christofides anthony at itia.ntua.gr
Tue Nov 9 16:35:20 EET 2010


Κάνω τα πρώτα μου βήματα σε autoconf/automake/libtool προσπαθώντας να
φτιάξω ένα C shared library που να τρέχει και σε linux και σε windows.
Σε Windows χρησιμοποιώ MinGW+MSYS. Είμαι σε καλό δρόμο, αλλά έχω
ορισμένα προβληματάκια:

1. Δεν μου τρέχει σε Windows. Νομίζω ότι μπερδεύει αυτά τα cdecl,
stdcall κλπ.

2. Το Makefile.am περιέχει τη γραμμή "lib_LTLIBRARIES =
libdickinson.la". Ενώ όμως το όνομα libdickinson.so που προκύπτει
είναι πράγματι αυτό που θέλω για το linux, εντούτοις σε Windows θα
ήθελα dickinson.dll.

3. Χρησιμοποιώ την strdup, που υπάρχει σε linux αλλά δεν υπάρχει σε
Windows. Αν βάλω τη δικιά μου υλοποίηση μέσα σε κάποιο source file,
τότε χτυπάει ο compiler όταν κομπιλάρω σε linux.

4. make install δουλεύει σε linux, αλλά δεν έχω καταλάβει τι κάνει σε
windows. Βάζει τα αρχεία στο "/usr/local/lib", που είναι κάποια
directory του msys.

Υπάρχει κάποιος τρόπος να τα αντιμετωπίσω αυτά, ή τα windows δεν
πολυπαίζουν με autoconf; Και τι ενδείκνυται; Να χρησιμοποιήσω autoconf
για τα γιουνιξοειδή και κάποια χακιά στα windows;



More information about the Linux-greek-users mailing list