[解決済み] エラー:戻り値の型が異なるだけの関数はオーバーロードできない
質問
mac os 10.9を使用しており、freeglutライブラリを使用したC++プログラムを持っています。プロジェクトを作成しようとすると プロジェクトを作ろうとすると、私のせいなのかどうなのかわからないエラーが出ます。これはメッセージです。
In file included from /usr/X11/include/GL/freeglut.h:18:
/usr/X11/include/GL/freeglut_ext.h:177:27: error: functions that differ only in their return type cannot be overloaded
FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName );
詳細 : Makefile の生成には cmake (version 2.8.12) を使用し、最新版の Xcode と XQuartz をインストールしました。
よろしくお願いします。ありがとうございました。
glut.h と freeglut_ext.h ファイルにあります。
glut.hで。
#if (GLUT_API_VERSION >= 5)
extern void * APIENTRY glutGetProcAddress(const char *procName) OPENGL_DEPRECATED(10_3, 10_9);
#endif
freeglut_ext.hにあります。
/*
* Extension functions, see freeglut_ext.c
*/
typedef void (*GLUTproc)();
FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName );
解決方法は?
宣言の1つは、関数型を返します。
GLUTproc
(引数を取らない関数を指定) を返し、もう一方の宣言はポインタ (
void*
). どちらの関数も同じ引数を取ります(単一の
const char*
). コンパイラが言うことは本当です。
C++だから"overloading"の文句が出ているだけでしょう。 C++では、もしコンパイラが同じ名前の2つの異なる関数を見たと思ったら、それぞれの関数は異なる引数(例えば、異なる引数の数、または異なる型)を持つ必要があるのです。
この場合、関数が異なることを意味するのではなく、同じであることを意味し、ある時点でAPIが進化して宣言が変更されたのではないでしょうか。
コンパイラが両方の宣言を同時に見ることができないようにする方法を見つける必要があります。
GLUT_API_VERSION
). もし、どうしてもという場合は
#include
を片方のファイルだけにして、もう片方のファイルが本当に必要かどうかを確認します (必要な場合は、2つ目の
#include
).
関連
-
[解決済み】「Illegal Instruction: 4」エラーと、「-mmacosx-version-min=10.x」で解決するのはなぜですか?
-
Macシステムでbrew install nvmを使用すると、コマンドが見つからない問題の後にnvmがインストールされる問題が解決されました。
-
[解決済み] MacBook Proでefilogin-helperが高CPUで連続稼動【終了しました
-
[解決済み] rootでrsyncを実行中。操作は許可されていません
-
[解決済み] rvm: コマンドが見つかりません MAC OX
-
[解決済み] VBAでMacのControl + Breakに相当
-
[解決済み] zshでnpmインストール後にコマンドが見つからない
-
[解決済み] Zsh は安全でない補完依存のディレクトリを検出する
-
[解決済み] Mac OS Xのターミナルで、前の出力をクリアするにはどうすればよいですか?
-
[解決済み] MacでAndroid Studioを完全にアンインストールする方法を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜこのマージが必要なのか、特に更新された上流をトピックブランチにマージする場合、コミットメッセージを入力してください。
-
[解決済み】SSH -L 接続は成功したが、localhost のポートフォワーディングが機能しない "channel 3: open failed: connect failed: 接続が拒否されました"
-
[解決済み] 警告: テンプレートが見つかりませんでした /usr/local/git/share/git-core/templates
-
[解決済み] OSX -bash: composer: コマンドが見つかりません。
-
[解決済み] rootでrsyncを実行中。操作は許可されていません
-
[解決済み] .git/index.lock' を削除してください。パーミッションが拒否されました。
-
[解決済み] zsh で $PATH 変数のアサーションをどこに置くか?
-
[解決済み] OS Xターミナルでカーソルを単語単位で移動する方法
-
[解決済み] Mac OS XでのMavenのインストール
-
[解決済み] Mac OS Xのターミナルで、前の出力をクリアするにはどうすればよいですか?