如何包含jxcore c ++库" jx.h"在qt应用程序?

时间:2016-10-25 05:31:48

标签: c++ qt jxcore

这是我尝试在Qt Creator中执行的示例代码。我在Qt中包含了所有JX库。 JX c ++代码可以在Qt之外运行,但我想让它在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();
}

1 个答案:

答案 0 :(得分:0)

是的,'未定义的引用'是一个链接器错误。 这是因为链接器无法在已有的路径中找到库(库),因此您需要指定它(它们),并且您要在Qt项目的.pro文件中执行它

.pro文件与makefile的工作方式类似:此处您必须指定源文件和头文件所在的“额外”路径以及库。 对于您的具体问题,您需要添加所有请求使jxcore工作的库,将它们添加到关键字“ LIBS ”: -L 介绍存储库的路径,而 -l <​​/ em> 引入您想要使用的库本身。即。

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

您可以在此链接http://doc.qt.io/qt-4.8/qmake-project-files.html找到更详细的说明。 如果您只对添加库

感兴趣,请直接转到上一部分

希望有所帮助