C ++ #include外部関数の問題

c c++ function include linker
C ++ #include外部関数の問題

私は本当の初心者で、Visual Studioを使用してC ++でプログラミングしています。 .cおよび.hファイルに記述されたいくつかの関数をリコールする単純なcppコードがあります。 #includeディレクティブを使用してそのファイルをインクルードすると、IDEは関数を「認識」します。 コンパイルすると、これが得られます

エラー7エラーLNK2019:_main D:\ Cprojects \ Pencil \ Pencil \ Pencil.obj鉛筆で参照されている未解決の外部シンボル_IMUsendAccelToFIFO

私はここで何が足りないのですか?

皆さん、ありがとうございました!

  1  0


ベストアンサー

これはリンカエラーであり、コンパイラエラーではありません。 コンパイラは満足しています。.hファイルで関数の宣言を確認しました。 リンカーはそうではなく、関数の_definition_を見つけることができません。

3


ghettopilotを使用していますか? それは私があなたが行方不明の機能へのウェブで見つけることができる唯一の参照です。 その場合は、リンクオプションにそのライブラリの.libファイルを含める必要があります。

0


Visual Studioは、.cファイルをCとしてコンパイルし、.cppファイルをデフォルトでC としてコンパイルします。これは、.cppファイルから.cファイルで定義された関数を呼び出す場合、ヘッダーを ` extern “C” {} `。コンパイラは、` extern “C” `として宣言されていないすべての関数がC のものであることを期待します。 これは、名前のマングリングと呼ばれる実装の詳細のためです。 または、プロジェクト設定ですべてのファイルを強制的にCまたはC ++としてコンパイルすることもできます。

0


Visual Studioでエラーが発生した場合は、実際にエラーコードをgoogleで検索すると、そのための非常に広範な情報を取得できます。 この場合、グーグルLNK2019は、このhttp://msdn.microsoft.com/en-us/library/799kze2z(VS.80).aspx[MSDNページ]を最初のヒットとして提供します。エラー。 +ベンダーは、いくつかの.libファイルを提供しているはずです(通常、libという名前のフォルダーにあります)。 これらがプロジェクトに追加されることを確認してください:

  • プロジェクト>プロパティ>構成プロパティ>リンカ>入力>
    追加の依存関係

また、ベンダーから「開始」情報があるかどうかも確認できます。これは、プロジェクトに含める必要がある依存関係を説明しています。 +コンパイラとリンカが何をするのかわからない場合は、https://stackoverflow.com/q/388242/238902 [それを説明する本]、またはhttps://stackoverflow.com/qを参照してください/ 194812/238902 [無料の代替案]。

0


解決しました! どうもありがとうございました! 私が使用していたライブラリをビルドする必要がありました。 試しましたが、「ヒープスペース」エラーが発生していたため、ビルドできませんでした。

Visual Studio 2005(コードはベンダーによって作成されました)をインストールしましたが、最初の試みで機能しました! おそらく、後方互換性の問題がいくつかあります。

0


タイトルとURLをコピーしました