開発環境はVC++です。C言語のヘッダーファイルやソースファイルをプロジェクトに入れてビルドすると・・・
state = speex_encoder_init(&speex_nb_mode);
この部分でspeex_nb_modeは未解決ですとエラーがでます。
speex_nb_modeここの定義位置へ移動すると、speex.hが開きます。
このspeex.hは当然プロジェクトに入れてあります。
ちなみにspeex.hの記述は
/** Default narrowband mode */
extern const SpeexMode speex_nb_mode;
となっています。
解決策を教えてください。
初心者ですのでそのへんよろしくお願いします。
No.4ベストアンサー
- 回答日時:
たぶん、以下のような初期化に何を設定すべきか解っていないというようなレベルではなく
残念ながら構造体やプロジェクトなどが根本的に解っていないのだと推測されます。
(以下を初期化したくらいで解決出来るレベルにあるとは思えません。)
~_ctl が今回の・・・は未解決ですとどのように関係するのでしょうか???
もっと簡単な物から始めてはいかがでしょうかとしか言えません。。。
#インデントなどは消えています(うまい貼り付け方を教えてください)
/* Default mode for narrowband */
static const SpeexNBMode nb_mode = {
160, /*frameSize*/
40, /*subframeSize*/
10, /*lpcSize*/
17, /*pitchStart*/
144, /*pitchEnd*/
#ifdef FIXED_POINT
29491, 19661, /* gamma1, gamma2 */
#else
0.9, 0.6, /* gamma1, gamma2 */
#endif
QCONST16(.0002,15), /*lpc_floor*/
{NULL, &nb_submode1, &nb_submode2, &nb_submode3, &nb_submode4, &nb_submode5, &nb_submode6, &nb_submode7,
&nb_submode8, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
5,
{1, 8, 2, 3, 3, 4, 4, 5, 5, 6, 7}
};
この回答への補足
oshiete_poo_V1さん
>残念ながら構造体やプロジェクトなどが根本的に解っていないのだと推測されます。
・・・
そのとおりです。
質問するのが恥ずかしいです。
今回は、質問の
state = speex_encoder_init(&speex_nb_mode);
を
state = speex_decoder_init(speex_lib_get_mode(SPEEX_MODEID_NB));
とすることで、エラーなくビルドできました。
Cサンプルの通り初期設定らしき記述は
speex_encoder_init
と
speex_encoder_ctl
の設定のみでエンコードとデコードが出来ていますが、事実上は問題があるでしょうか?
詳しい初期設定も勉強したと思っています。
それと、libspeex.dllが実行ファイルと同じ場所にないと、実効エラーになります。
静的リンク(マルチスレッド/MT)をしたと思うのですが、こちらも解決策をお願いします。
No.5
- 回答日時:
No.4に書いたのは
http://www.speex.org/docs/api/speex-api-referenc …
に書かれている第一番目の要素 const void * mode の中身だけです。
No.3
- 回答日時:
speex_nb_modeと言う名前の変数を用意してあげてください。
speex.hでは extern が付いているため、外部に実態があるようになっています。
例えば、
--- vars.c ---
#include "(SppxModeの内容が書かれているヘッダファイル).h"
SpeexMode speex_nb_mode = {speex_nb_modeの中身を_適_切_に_初期化します};
--- vars.c ---
あなたが使っている版と同じかどうか解りませんが
http://www.speex.org/docs/api/speex-api-referenc …
では10個以上設定する項目があるので
それらを「あなたがやりたい処理内容に合わせて」(質問には書かれておりませんので不明です)正しく初期化する必要があります。
この回答への補足
エラーが出た関数内に
const SpeexMode speex_nb_mode;
を追記するとビルドできました。
これでspeex_nb_modeが設定出来たかどうかは疑問ですが、どうも反映できていない気もします。
後Cのサンプルでは
speex_decoder_ctl(state, SPEEX_SET_ENH, &tmp);
があり、10個以上の設定は書かれていませんでしたが、2個の設定で後はデフォルトでよいのでしょうか?
ちなみに以下を記述しています。
#include "speex/speex.h"
#include <stdio.h>
#pragma comment(lib , "static/libspeex")
No.2
- 回答日時:
>どれかのソースファイルの1つで実体を宣言してください。
宣言と定義を間違えた。
ということで、定義してください。
参考URL:http://kurotofu.sytes.net/kanji/fool/?p=279
この回答への補足
回答ありがとうございます。
今回は
const SpeexMode speex_nb_mode;
を関数内に追記することで、ビルドできました。
No.1
- 回答日時:
>ちなみにspeex.hの記述は
>/** Default narrowband mode */
>extern const SpeexMode speex_nb_mode;
>となっています。
speex.hは複数のソースから利用されるのでしょう。
んで、ここの記述は……
「SpeexMode型のspeex_nb_modeって変数が存在するよ」とコンパイラに教えていることになります。
「『どっかにある』からコンパイルエラーにしないでね♪実体の場所はリンカーさんよろしく♪」となります。
で、実体がないのでリンカーさんが「実体ないからリンクできないよぅ」となっています。
どれかのソースファイルの1つで実体を宣言してください。
# main()があるソースで…とか。実体だけをまとめたソースをプロジェクトに追加するとか。
「extern 未解決」ってキーワードでWeb検索とかしてみてください。
この回答への補足
早速の回答ありがとうございます。
今回は
const SpeexMode speex_nb_mode;
を追述することで解決しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- デスクトップパソコン EZ Mode についてドスパラデスクトップPC 1 2023/01/27 01:06
- Illustrator(イラストレーター) IllustratorのaiファイルがMacのFinderでサムネイル表示されません。 下記の画像の 1 2023/05/15 16:55
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- フランス語 フランス語文章の構造について質問 1 2022/08/24 18:02
- その他(パソコン・周辺機器) Type-cのディスプレイアダプタ 3 2022/08/22 13:13
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- 経済学 資本移動や価格変動のない次のような固定為替レート・モデルを考える。 C = 10 + 0.8 Y I 3 2022/06/21 20:50
- その他(プログラミング・Web制作) micropython コードについて 2 2023/06/14 13:13
- 数学 Pythonのspecgramに関する質問です。 1 2022/12/04 19:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IP Helper APIを使うとエラーが...
-
LNK2001(Pro*c)
-
error LNK2001について
-
・・・は未解決です、の対策を...
-
外部依存関係について
-
コンパイルエラー
-
PathIsDirectoryを使って
-
「外部シンボルが未解決」につ...
-
LNK2019: 未解決の外部シンボル...
-
ステータスバーを作ろうとして...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
適切な変換関数が存在しない???
-
VBAを何回も作り直して、容量が...
-
unsigned long long 型のフォー...
-
アプリケーションのDLLファイル...
-
ソフトの開発言語を調べる方法
-
Excelのエラーで困ってます。
-
すべてのリビルド: 0 正常、 0 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
外部シンボル" ~~"は未解決で...
-
error LNK2001について
-
C++でのエラー LNK2001
-
外部シンボルの未解決のエラー
-
LNK2019: 外部シンボル どのよ...
-
popen・pcloseについて
-
「外部シンボルが未解決」につ...
-
C言語のエラー LNK1120: 外部参照
-
パブリックシンボルとは?
-
visual c++ 2008 でwindows プ...
-
C++STLについての質問です。
-
MFC C++ と C++/CLI の文字列
-
エラー 未解決の外部シンボル
-
コンパイルエラー
-
OpenCVでの画像サイズ取得につ...
-
実行ファイルの容量を減らした...
-
エラーについて
-
未解決の外部シンボル
-
コピーコンストラクタと、代入...
おすすめ情報