中学の自由研究で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
1/*main.cpp*/ 2#include "ofMain.h" 3#include "ofApp.h" 4 5//======================================================================== 6int main( ){ 7 ofSetupOpenGL(1024,768,OF_WINDOW); // <-------- setup the GL context 8 9 // this kicks off the running of my app 10 // can be OF_WINDOW or OF_FULLSCREEN 11 // pass in width and height too: 12 ofRunApp(new ofApp()); 13 14}
cpp
1/*ofApp.cpp*/ 2#include "ofApp.h" 3 4//-------------------------------------------------------------- 5void ofApp::setup(){ 6} 7 8//-------------------------------------------------------------- 9void ofApp::update(){ 10} 11 12//-------------------------------------------------------------- 13void ofApp::draw(){ 14} 15 16//-------------------------------------------------------------- 17void ofApp::keyPressed(int key){ 18 19} 20 21//-------------------------------------------------------------- 22void ofApp::keyReleased(int key){ 23 24} 25 26//-------------------------------------------------------------- 27void ofApp::mouseMoved(int x, int y ){ 28 29} 30 31//-------------------------------------------------------------- 32void ofApp::mouseDragged(int x, int y, int button){ 33 34} 35 36//-------------------------------------------------------------- 37void ofApp::mousePressed(int x, int y, int button){ 38 Drum temp; 39 temp.setup(x,y); 40 drums.push_back(temp); 41} 42 43//-------------------------------------------------------------- 44void ofApp::mouseReleased(int x, int y, int button){ 45 46} 47 48//-------------------------------------------------------------- 49void ofApp::mouseEntered(int x, int y){ 50 51} 52 53//-------------------------------------------------------------- 54void ofApp::mouseExited(int x, int y){ 55 56} 57 58//-------------------------------------------------------------- 59void ofApp::windowResized(int w, int h){ 60 61} 62 63//-------------------------------------------------------------- 64void ofApp::gotMessage(ofMessage msg){ 65 66} 67 68//-------------------------------------------------------------- 69void ofApp::dragEvent(ofDragInfo dragInfo){ 70 71}
cpp
1/*ofApp.h*/ 2#pragma once 3 4#include "ofMain.h" 5#include "Drum.hpp" 6 7class ofApp : public ofBaseApp{ 8 9 public: 10 void setup(); 11 void update(); 12 void draw(); 13 14 void keyPressed(int key); 15 void keyReleased(int key); 16 void mouseMoved(int x, int y ); 17 void mouseDragged(int x, int y, int button); 18 void mousePressed(int x, int y, int button); 19 void mouseReleased(int x, int y, int button); 20 void mouseEntered(int x, int y); 21 void mouseExited(int x, int y); 22 void windowResized(int w, int h); 23 void dragEvent(ofDragInfo dragInfo); 24 void gotMessage(ofMessage msg); 25 26 vector <Drum> drums; 27};
cpp
1/*Drum.cpp*/ 2#include "Drum.hpp" 3 4void Drum::setup(float _x, float _y){ 5 mySound.load("cursor.mp3"); 6}
cpp
1/*Drum.hpp*/ 2#ifndef Drum_hpp 3#define Drum_hpp 4 5#include "ofMain.h" 6 7class Drum { 8 9 public: 10 11 void setup(float _x, float _y); 12 13 ofSoundPlayer mySound; 14}; 15#endif
なぜビルドができないのか教えていただけると幸いです。