現状
C++でヘッダファイル(.h)をインクルードしたいのですが上手くいきません。
環境・バージョン
Microsoft Visual C++:2005, 2008, 2010, 2012, 2013, 2017(使用しているバージョンはわからない)
Visual Studio Code: 1.25.1(これを入力したエディタ)
g++: 6.3.0
コード
いずれも同フォルダにあります。
main.cpp
C++
1#include "fo.h" 2int main(){ 3 int a = foo(); 4}
fo.cpp
C++
1#include "fo.h" 2int foo(){return 100;}
fo.h
C++
1#pragma once 2int foo();
これらを、g++ main.cpp -o main && main
で実行すると、以下のコンパイルエラーが出ます。
C++
1C:\Users\(ユーザ名)\AppData\Local\Temp\ccESwyzU.o:main.cpp:(.text+0xf): undefined reference to `foo()' 2collect2.exe: error: ld returned 1 exit status
g++のオプションでインクルードパスを設定することができるようですが上手くいきませんでした。
かつヘッダファイルは同一フォルダにあるので関係ないかと考えられます。
main.cppでソースコードを直接インクルードする(#include "fo.h"
を #include "fo.cpp"
にする)と、エラーは出なくなりますが、ヘッダファイルを利用した方がC++の仕様上良いと思うので、ヘッダファイルを利用したいです。
どなたかご教授お願いします。
回答に移動

回答1件
あなたの回答
tips
プレビュー