Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Japanese
  4. Qxtライブラリでundefinitionエラー(ビルドに失敗?)
QtWS25 Last Chance

Qxtライブラリでundefinitionエラー(ビルドに失敗?)

Scheduled Pinned Locked Moved Japanese
3 Posts 2 Posters 3.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    riyaaaaa
    wrote on last edited by
    #1

    Win8.1
    Qt5.3.2minGWを使っています。

    QxtのGlobalShourtCutを利用しようと思いまして、
    http://qt-project.org/wiki/LibQxt_in_QtCreator

    このページを参考にQxtをビルド、使用しました。

    proファイルは

    @
    QXT_DIR = C:\Qxt

    INCLUDEPATH += C:\Qxt\include\QxtWidgets
    INCLUDEPATH += C:\Qxt\include\QxtCore

    LIBS += -LC:\Qxt\lib

    QXT += gui core
    @

    以上のようにして

    @
    QxtGlobalShortcut *shortcut = new QxtGlobalShortcut(this);
    connect(shortcut, SIGNAL(activated()),this,SLOT(shortCutAct()));
    shortcut->setShortcut(QKeySequence("Ctrl+Shift+F12"));
    @

    このように使用したところ、

    In function ZN10MainWindowC2EP7QWidget': エラー: undefined reference to _imp___ZN17QxtGlobalShortcutC1EP7QObject'
    エラー: undefined reference to `_imp___ZN17QxtGlobalShortcut11setShortcutERK12QKeySequence'
    collect2.exe:-1: エラー: error: ld returned 1 exit status

    以上のようなエラーがでてきました。

    ライブラリのリンクは間違っていないと思われるので、ビルドに失敗したのかと思い、再度Qxtのconfigure.batを実行してみたところ

    _
    Testing for qmake...

    Testing for mingw32-make...

       Using mingw32-make.
    

    ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

    Testing for optional external libraries.

    If tests fail, some features will not be available.

    Testing for Berkeley DB...

       Berkeley DB disabled.
    

    Testing for Zero Conf...

       Zero Conf disabled.
    

    Configuration successful.

    Generating makefiles...

    <以下bindingとビルド>
    _

    このような構文エラーがでてきていました。

    ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

    どうやらbatファイルの以下の行でエラーを起こしているようです。

    @
    if "%QXT_INSTALL_FEATURES%" == "Unknown" %QMAKE_BIN% -query QT_HOST_DATA > %QXT_BUILD_TREE%\mkspecs.tmp & set /p QXT_INSTALL_FEATURES=<%QXT_BUILD_TREE%\mkspecs.tmp & set QXT_INSTALL_FEATURES=<%QXT_INSTALL_FEATURES%\mkspecs
    @

    QXT_BUILD_TREEはカレントディレクトリのアドレスのようです。
    作業ディレクトリなどには基本的な英数字とハイフンしか使用していないのに、なぜ構文エラーを起こしているのかわかりません。

    上記のようなbatファイルでのエラーを起こしていても、Qxtのビルドは通るのですが、Qxtライブラリが動かない理由はこれが原因なのでしょうか。

    資料が少なく、困っています。
    どなたかご教授お願い致します。

    1 Reply Last reply
    0
    • I Offline
      I Offline
      IoriAYANE
      Qt Champions 2015
      wrote on last edited by
      #2

      こんにちは。

      ちゃんとすべてを把握してないのでとりあえずQxtを使用するアプリをビルドするだけの参考情報になりますが。
      (テストアプリを実行しようとしたらQxtGlobalShortcutをnewするところでエラーになりました)

      さて、proファイルの設定でLIBSのところを以下のようにしないとリンカエラーになるようです。

      LIBS += -LC:\Qxt\lib -lqxtcore -lqxtwidgets

      //--------------
      Iori AYANE
      iori.ayane@gmail.com

      1 Reply Last reply
      0
      • R Offline
        R Offline
        riyaaaaa
        wrote on last edited by
        #3

        ありがとうございます。
        実際にproを書き換えたところ、ビルドには成功しました。

        ですが、同じように
        newの時点で

        QObject: Cannot create children for a parent that is in a different thread.
        (Parent is MainWindow(0x28fe1c), parent's thread is QThread(0x1231b1a0), current thread is QThread(0x1231e310)

        エラーが出ました。

        完全な解決には至りませんでしたが、ご回答ありがとうございます。

        引き続き上記エラーの解決法を募集したいです。

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved