2010-12-11 16 views
1

C++コードでCライブラリRS232を使用してArduino Unoボードを制御しました。私のmain.cppには、私が得た:クロスプラットフォームのC++コードをコンパイルしようとしています.C関数への未定義参照

#include "rs232.h" 

rs232.hヘッダファイルに、彼らはすでに持っているので:1つのフォルダに

#ifdef __cplusplus 
extern "C" { 
#endif 

を、私が持っている: main.cppに RS232を。時間 rs232.c stdafx.hを stdafx.cpp

と私は、コードは、Linuxを使用することができるようにコンパイルするためにCygwinを使用します。

g++ main.cpp 

しかし、 "... _OpenComport 'への未定義の参照でエラーが発生しました。私のmain.cppから呼び出されたすべてのC関数に似ています。

CのヘッダーファイルをC++に含める方法を教えてもらえますか?それともg ++に間違ったコマンドを使ったのですか?

答えて

4

あなたはライブラリにパーツを、またそう

g++ -o demo.exe main.cpp rs232.c stdafx.cpp 

のように、コンパイラにすべてのソースファイルを渡すコンパイルする必要があり、コンパイルとリンクは別個のステップ。

+0

ありがとうございます。 Windowsを中心とした人にとってはシンプルでありがたいです。 Windowsの – fred

+0

では、main.cppだけをコンパイルしようとすると、まったく同じエラーが発生します。 – n0rd

+0

Visual Studioを使ってコードを書いたので、今までLinuxに移植する必要はありませんでした。 – fred

関連する問題