Ho una libreria c che uso in gcc. La libreria ha l'estensione .lib ma è sempre collegata come una libreria statica. Se scrivo un programma che usa la libreria come c-code, tutto come a-ok. Se tuttavia rinominare il file in .cpp (facendo cose semplici che funzionano in entrambi c/C++) ottengo riferimento indefinito. Questi sono piccoli programmi semplici che scrivo a scopo di test, quindi niente cose di fantasia. Compilare utilizzando:C-library non si collega usando gcc/g ++
gcc -g -Wall -I <path to custom headers> -o program main.c customlibrary.lib -lm -lpthread
Quanto sopra funziona come un fascino. Tuttavia:
g++ -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread
o
gcc -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread -lstdc++
risultati indefiniti riferimento ad una qualsiasi funzione customlibrary.lib. Ho provato a creare un collegamento simbolico denominato customlibrary.a ma senza fortuna.
Perché g ++ find non riconosce la mia libreria. Sfortunatamente non ho accesso al codice sorgente delle librerie ma collegare un c-lib a C++ non dovrebbe essere un problema, giusto?
Il simbolo '__cplusplus' ha due sottolineature, come definito dalle norme pertinenti. – RBerteig