J'ai utilisé la bibliothèque C-RS232 dans mon code C++ pour contrôler une carte Arduino Uno. Dans mon main.cpp, je suis arrivé:Essayer de compiler le code C++ multi-plateforme. Référence indéfinie à la fonction C
#include "rs232.h"
parce que dans le fichier d'en-tête de rs232.h, ils ont déjà:
#ifdef __cplusplus
extern "C" {
#endif
Dans un dossier, j'ai: main.cpp rs232. h rs232.c stdafx.h stdafx.cpp
et j'utilise Cygwin pour compiler afin que le code pourrait être utilisé pour Linux:
g++ main.cpp
mais j'ai eu des erreurs avec "... référence non définie à '_OpenComport'" et similaire à toutes les fonctions C que j'ai appelé depuis mon main.cpp.
Quelqu'un peut-il me dire comment inclure le fichier d'en-tête C en C++? Ou est-ce que j'ai utilisé la mauvaise commande pour g ++?
Merci ... cela fonctionne. Si simple mais si insaisissable pour une personne centrée sur Windows. – fred
dans Windows si vous essayez de compiler uniquement main.cpp vous obtiendrez exactement la même erreur. – n0rd
Eh bien, j'ai écrit le code en utilisant Visual Studio et je n'ai pas eu à faire un port pour Linux jusqu'à maintenant. – fred