🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

2回答

3451閲覧

LNK2019 未解決の外部シンボル が "~" が関数 "~" で参照されました

sherringford

総合スコア0

openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/04/24 19:29

中学の自由研究で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

なぜビルドができないのか教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2022/04/24 22:23

Drum.cpp がプロジェクトに含まれていないのでは?
sherringford

2022/04/25 11:43

初心者で何もわからず恐縮なのですが、プロジェクトに含まれているかどうか確認する方法とプロジェクトに含むにはどうしたらいいかを教えていただけますか?
episteme

2022/04/25 13:01

あなたがどんな環境でコンパイル/リンク/実行しているかわからんので答えようがありません。
guest

回答2

0

定義では引数(float, float)となっているのに、呼び出し時に(int, int)を与えています。

該当の型に対応するものがないので「未解決==存在しません」となります。

投稿2022/05/07 02:47

mike

総合スコア118

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2022/05/08 22:42

そうであればコンパイル・エラーとなるはず。
guest

0

そのシンボルの関数(の実態)が見つからない、と言うエラーです。
ビルド対象にその関数が含まれてるソースを含めましょう

投稿2022/04/24 22:56

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問