中学の自由研究でopenFlameworksでゲームを作っています。
別ファイルでclassを作成してビルドしようとしたら以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラー LNK2019 未解決の外部シンボル "public: void __thiscall Drum::setup(float,float)" (?setup@Drum@@QAEXMM@Z) が関数 "public: virtual void __thiscall ofApp::mousePressed(int,int,int)" (?mousePressed@ofApp@@UAEXHHH@Z) で参照されました
該当のソースコード
cpp
/*main.cpp*/ #include "ofMain.h" #include "ofApp.h" //======================================================================== int main( ){ ofSetupOpenGL(1024,768,OF_WINDOW); // <-------- setup the GL context // this kicks off the running of my app // can be OF_WINDOW or OF_FULLSCREEN // pass in width and height too: ofRunApp(new ofApp()); }
cpp
/*ofApp.cpp*/ #include "ofApp.h" //-------------------------------------------------------------- void ofApp::setup(){ } //-------------------------------------------------------------- void ofApp::update(){ } //-------------------------------------------------------------- void ofApp::draw(){ } //-------------------------------------------------------------- void ofApp::keyPressed(int key){ } //-------------------------------------------------------------- void ofApp::keyReleased(int key){ } //-------------------------------------------------------------- void ofApp::mouseMoved(int x, int y ){ } //-------------------------------------------------------------- void ofApp::mouseDragged(int x, int y, int button){ } //-------------------------------------------------------------- void ofApp::mousePressed(int x, int y, int button){ Drum temp; temp.setup(x,y); drums.push_back(temp); } //-------------------------------------------------------------- void ofApp::mouseReleased(int x, int y, int button){ } //-------------------------------------------------------------- void ofApp::mouseEntered(int x, int y){ } //-------------------------------------------------------------- void ofApp::mouseExited(int x, int y){ } //-------------------------------------------------------------- void ofApp::windowResized(int w, int h){ } //-------------------------------------------------------------- void ofApp::gotMessage(ofMessage msg){ } //-------------------------------------------------------------- void ofApp::dragEvent(ofDragInfo dragInfo){ }
cpp
/*ofApp.h*/ #pragma once #include "ofMain.h" #include "Drum.hpp" class ofApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void keyPressed(int key); void keyReleased(int key); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void mouseEntered(int x, int y); void mouseExited(int x, int y); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); vector <Drum> drums; };
cpp
/*Drum.cpp*/ #include "Drum.hpp" void Drum::setup(float _x, float _y){ mySound.load("cursor.mp3"); }
cpp
/*Drum.hpp*/ #ifndef Drum_hpp #define Drum_hpp #include "ofMain.h" class Drum { public: void setup(float _x, float _y); ofSoundPlayer mySound; }; #endif
なぜビルドができないのか教えていただけると幸いです。
まだ回答がついていません
会員登録して回答してみよう