这是我尝试在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();
}
答案 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找到更详细的说明。 如果您只对添加库
感兴趣,请直接转到上一部分希望有所帮助