2016-10-25 6 views
0

Qt Creatorで実行しようとしているサンプルコードです。 QtにはすべてのJXライブラリが含まれています。 JXのC++コードはQtの外部でうまく動作しますが、Qt内で動作させたいのです。コードを見直し、これを達成する方法を提案してください。qtアプリケーションにjxcore C++ライブラリ "jx.h"を含めるにはどうすればよいですか?

現在、「v8 :: Locker :: Locker(v8 :: Isolate *)」の定義されていない参照と同様のエラーが発生しています。 QtがJXライブラリを認識していないので、私はそれを推測します。

ありがとうございます。

#include "mainwindow.h" 
#include <QApplication> 
#include "jx.h" 

#if defined(_MSC_VER) 
// Sleep time for Windows is 1 ms while it's 1 ns for POSIX 
// Beware using this for your app. This is just to give a 
// basic idea on usage 
#include <windows.h> 
#else 

#include <unistd.h> 
#define Sleep(x) usleep(x) 
#endif 

void callback(JXValue *results, int argc) { 
// do nothing 
} 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.show(); 

    const char *contents = 
     "process.requireGlobal = require;"; 

    JX_Initialize(argv[0], callback); 
    JX_InitializeNewEngine(); 

    JX_DefineMainFile(contents); 

    JX_StartEngine(); 

    JXValue ret_val; 
    JX_Evaluate("process.requireGlobal('./dummy.js').data", 
    "eval",&ret_val); 

    while (JX_LoopOnce() != 0) usleep(1); 

    JX_Free(&ret_val); 
    JX_StopEngine(); 

    return a.exec(); 
} 

答えて

0

はい、 '未定義の参照'はリンカーエラーです。 これは、リンカーがすでに持っているパスでライブラリ(ライブラリ)を見つけることができないためです。そのため、あなたはそれを指定する必要があります。あなたはそれをあなたのQtの.proファイルで行う必要がありますプロジェクト。

.proファイルはmakefileと同じように動作します。ここでは、ソースファイルとヘッダーファイルが配置されている「余分な」パスとライブラリを指定する必要があります。 あなたの具体的な質問については、あなたがキーワードに追加し、jxcoreの作業を行うことを要求するすべてのライブラリを追加する必要がある「LIBS」:しばらく-Lは、ライブラリが格納されている時にパス(複数可)をご紹介-lは、使いたいライブラリを紹介しています。私。

LIBS += -L/path/to/your/libraries \ 
     -lname_of_library_without_lib 

追加ライブラリ

が、それは私がすでにあることが、で追加

+0

感謝のお役に立てば幸い方法にちょうど興味がある場合は、最後のセクションに直接このリンクでhttp://doc.qt.io/qt-4.8/qmake-project-files.html 移動をより詳細な説明を見つけることができますlib。今度はlibなしで試してみましょう。それがうまくいくことを望みます。 – manid2

+0

"dlclose @@ GLIBC_2.2.5 'シンボル" – manid2

+0

"/usr/lib64/libdl.so.2:シンボルの追加中にエラーが発生しました:" DSOがコマンドラインから抜けています "というエラーが発生しました。私は何をすべきか? – manid2

関連する問題