2016-10-25 9 views
0

Это пример кода, который я пытаюсь выполнить в Qt Creator. Я включил все библиотеки JX в Qt. Код JX C++ работает вне Qt, но я хочу, чтобы он работал внутри Qt. Просмотрите код и предложите мне способ достичь этого.Как включить библиотеку jxcore C++ «jx.h» в приложениях qt?

В настоящее время я получаю такие ошибки, как «неопределенная ссылка на` v8 :: Locker :: Locker (v8 :: Isolate *) »и 1000 подобных ошибок. Я считаю, потому что 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

Да, «неопределенная ссылка на» является ошибкой компоновщика. Это связано с тем, что компоновщик не может найти библиотеку (библиотеки) в тех путях, которые у нее уже есть, поэтому вам нужно указать их (их), и вы должны сделать это в файле .pro вашего Qt проект.

.pro файл работает аналогично makefile: здесь вы должны указать «дополнительные» пути, где расположены исходные и заголовочные файлы, а также библиотеки. Для вашего конкретного вопроса, необходимо добавить все библиотеки с просьбой сделать jxcore работу, добавляя их к ключевому слову «LIBS»: -L ввести путь (ы), в котором хранятся библиотеки, в то время как -l Вводите сами библиотеки, которые вы хотите использовать. То есть

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

Вы можете найти более подробное описание по этой ссылке http://doc.qt.io/qt-4.8/qmake-project-files.html перейти непосредственно к последней секции, если вы просто заинтересованы в том, как добавлять библиотеки

Надеются, что это помогает

+0

Спасибо я уже добавил, что, но с Lib. Теперь я попробую без lib. Надеюсь, что это работает. – manid2

+0

Я получаю «неопределенную ссылку на символ» dlclose @@ GLIBC_2.2.5 '" – manid2

+0

" /usr/lib64/libdl.so.2: ошибка добавления символов: ошибка DSO из командной строки ". Что мне делать? – manid2