前提・実現したいこと
C++とJavaScriptとMathJaxを用いて数学の計算問題を自動生成するプログラムを製作しています。
その過程の問題生成の部分をC++でプログラムを組んでおり、仕様上相互参照が必要になったためそのプログラムを組んだのですが、定義しているはずの関数に対してエラーメッセージが出ており、どうすれば良いか分からなくなりました。
発生している問題・エラーメッセージ
_main.cpp:(.text+0x47): undefined reference to `MathTermConstant::Build[abi:cxx11](bool)' collect2.exe: error: ld returned 1 exit status
該当のソースコード
C++
1// main.cpp 2#include "mtermc.hpp" 3//#include "mformula.hpp" おそらく関係なし 4#include <iostream> 5 6using namespace std; 7 8int main(){ 9 MathTermConstant a1(4,3); 10 cout<<a1.Build(false)<<endl; // a1.Build(false)に対してエラー 11}
c++
1// mtermc.hpp 2#ifndef MTERMC_HPP 3#define MTERMC_HPP 4 5#include "commonfunc.hpp" 6#include <string> 7 8struct MathFormula; 9 10struct MathTermConstant{ 11 int Nume,Deno; 12 MathFormula *Index; 13 MathTermConstant(int Numerator,int Denominator,MathFormula *Index) 14 : Nume(Numerator),Deno(Denominator),Index(Index){ 15 // 略 16 } 17 MathTermConstant(int Numerator,int Denominator) 18 : Nume(Numerator),Deno(Denominator),Index(){ 19 // 略 20 } 21 22 std::string Build(bool LFraction); 23}; 24 25#endif
c++
1// mtermc.cpp 2//#include "mformula.hpp" 3#include "mtermc.hpp" 4 5std::string MathTermConstant::Build(bool LFraction){ 6 std::string result=""; 7 bool Brackets=((Index!=NULLF)&&(Deno!=1||Nume<0)); 8 bool Fraction=(Nume!=0&&Deno!=1); 9 bool Minus=(Nume<0); 10 bool ExistIndex=(Index!=NULLF); 11 12 if(Brackets) result+="\left("; 13 if(Fraction){ 14 if(Minus) result+=(LFraction?"-\dfrac{":"-\frac{")+itos(Nume*-1)+"}{"+itos(Deno)+"}"; 15 else result+=(LFraction?"-\dfrac{":"-\frac{")+itos(Nume)+"}{"+itos(Deno)+"}"; 16 } 17 else{ 18 result+=itos(Nume); 19 } 20 if(Brackets) result+="\right)"; 21 //if(ExistIndex) result+="^{"+Index->Build(false)+"}"; 22 return result; 23}
補足情報(FW/ツールのバージョンなど)
コンパイラはMinGW8.2.0を使用
回答1件
あなたの回答
tips
プレビュー