質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

90.48%

  • C++

    3631questions

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

  • Mecab

    181questions

    Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

  • Qt

    151questions

    QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Qt5.6 C++ 外部ライブラリの読み込み(MeCab)で質問です。 

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,995

meronobu

score 1

Qt5.6 C++ 外部ライブラリの読み込みの質問です。

形態素解析エンジンのMeCabをQtで使用したいのですが、
コンパイルエラーから進まずに困っているので助けてください。

「プロジェクト」→「ライブラリの追加」→「外部ライブラリ」→MeCabのlibmecab.libのパスを設定。

この後に、.proファイルに以下の文が追加されてコンパイルしてもエラーになってしまいます。

↓自動生成追加文
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../lib/MeCab/sdk/ -llibmecab -lmecab
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../lib/MeCab/sdk/ -llibmecabd -lmecab
else:unix: LIBS += -L$$PWD/../lib/MeCab/sdk/ -llibmecab

INCLUDEPATH += $$PWD/../lib/MeCab/sdk
DEPENDPATH += $$PWD/../lib/MeCab/sdk

↓エラー内容
:-1: エラー: cannot find -llibmecabd
collect2.exe:-1: エラー: error: ld returned 1 exit status

↓開発環境
windows10 32bit
Qt5.6 C++

コマンド上ではMeCabを動くことが確認しています。
どなたか教えてください。
よろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

こんにちは。

コンパイラはQtとMeCabで同じものを使われていますか?
C++ I/Fを使う場合、同じコンパイラの同じバージョンを使うべきです。

QtはMicrosoftのVisual C++とMinGWの幾つかのバージョンでプリビルド版が提供されていたと思います。
そのどれをお使いでしょうか?

次にMeCabをみてみました。

C++ コンパイラ (g++ 3.4.3 と VC7 でのコンパイルを確認しています)

これは、非常に古いコンパイラです。この記述が更新されてないだけなら良いのですが...
どちらにしても、MeCabのプリビルド版は2013年提供なので、Qtのプリビルド版と同じコンパイラは使っていない可能性が高いと思います。ビルド作業が必要になるのではないでしょうか。
MeCabの開発者メーリング・リストの中に、プリビルド版のコンパイル情報やビルド手順についてやり取りがあるかもです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/03 14:06

    応答ありがとうございます。

    QtはMinGWの4.9.2 32bitを使用しています。

    コンパイラを揃える。。
    となりますと、MeCabをビルドしてQt側のMinGwにバージョンを揃えるという認識なのですが、これは一般的にどのようにこなせばよろしいでしょうか?
    検索してもあんまり理解ができなかったので無知な質問をすみません、よろしくお願いします。

    キャンセル

  • 2016/04/03 14:57

    > これは一般的にどのようにこなせばよろしいでしょうか?

    よく使われる方法は複数ありますし、バリエーションも非常に多いので開発者に聞くのが妥当です。オープンソースの場合、開発者がビルド方法を公開しているケースが多いです。

    MeCabのサイトを見ましたが、Windows版のビルド方法は記載されてませんでした。
    開発者向けメーリング・リストがあるようです。そちらで聞いてみるのも手かもしれません。http://lists.osdn.me/mailman/listinfo/mecab-devel

    返事がなかったら、う~ん。
    諦めてC言語I/Fで使うのも手と思います。私はVC++のDLLをMinGWから呼び出せるかどうか分かりませんが、知っている人が結構いると思いますので質問すれば答えを得ることができると思います。

    キャンセル

  • 2016/04/03 17:23

    細かいところまで導いてくださりありがとうございます。

    ビルド方法についてもう少し調べてみることにし、どうしてもわからなければ開発者さんに聞いてみることにします。

    非常に分かりやすい回答、どうもありがとうございました。

    キャンセル

0

.pro ファイルに追加された文の中で、libmecab じゃなくて libmecabd になっているのは正しいのですか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/02 23:37

    応答ありがとうございます。
    libmecab と libmecabdは、Qtの使用でデバック時は語尾にdをつけることが任意で行われるようだったのですが、外したら少しエラー内容が少し変わりました。

    エラー: undefined reference to `_imp___ZN5MeCab12createTaggerEPKc'
    collect2.exe:-1: エラー: error: ld returned 1 exit status

    必要なヘッダファイル(mecab.h)はincludeしており、
    関数名もサンプルコードをコピーさせてもらったので間違いはないと思われます。
    このようなエラーの場合、他に何を考えればよろしいのでしょうか?

    キャンセル

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

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    mecabをjavaで使いたい

    mecabをTomcatのwebアプリで使いたいのですが、どうすればよいでしょうか。 mecabのソースと辞書をインストールしてコマンドラインから形態素解析はできるようになったの

  • 解決済

    pythonでMecabを使いたいのですが、うまくいきません

    ここで質問してもよいのかわからないのですが、 どうしても詰まってしまったので質問させて頂きます。 Windows8.1、Python 3.4.3(64bit)です。 形態素分析

  • 受付中

    mecab-python のインストールで setup.py build ができない。

    開発環境 Python 3.4.3 pyenv 3.4.3 Mac yosemite インストール手順 $ brew install mecab $ brew install 

  • 解決済

    VisualStudio2017でGLFWが動くようにしたい。

    タイトル通り、VisualStudio2017でGLFWが動くようにしたいのです。 調べるとVisualStudio2015ならば、説明しているサイトが見つかるのですが・・・。

  • 解決済

    Raspberry piでOpenCVを利用したい

    前提・実現したいこと Raspberry pi 2でOpenCV(2.4.0)を利用できるように設定を行っているのですが、コンパイルでエラーが発生しました。 全くの初心者で解決方法

  • 受付中

    Pyhtonでnattoが使えない

    毎度お世話になっております。 質問させていだきます。 Pythonで自然言語処理周りを試してみたく、nattoを使ってみようと思いまして、mecabインストールからのpipにて

  • 解決済

    java にmecabを入れて使いたい!

    Javaにmecabを入れて使いたいです。 mecabをインストールまではできました。 そのあとのMakefileの6行目を書き換える必要がある、と言われてどう書き換えればいいのか

  • 受付中

    MeCab:Windows10環境でうまく動かない

    環境:win10,python3.6 初学者です。このサイトに従ってWindows10でMecabをインストールしようと考えておりますが、うまくいきません。 今回の作業では

同じタグがついた質問を見る

  • C++

    3631questions

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

  • Mecab

    181questions

    Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

  • Qt

    151questions

    QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。