我一直在尝试学习Spidermonkey,因此编写了以下代码,这些代码是从this guide改编而成的,尽管程序可以正确编译,但是在链接期间出现以下错误:

/usr/bin/ld: cannot open linker script file symverscript: No such file or directory


我正在使用64位Ubuntu 13.10,下面是代码(似乎与问题无关,但不会造成伤害)

#include <jsapi.h>
#include <iostream>
#include <string>

int main()
{
    std::string script = "var x = 10;x*x;";
    jsval rval;
    JSRuntime* runtime = 0;
    JSContext* context = 0;
    JSObject* globalob = 0;
    if((!(runtime = JS_NewRuntime(1024L*1024L, JS_NO_HELPER_THREADS)))||
        (!(context = JS_NewContext(runtime, 8192)))||
        (!(globalob  = JS_NewObject(context, NULL, NULL, NULL))))
    {
        return 1;
    }
    if(!JS_InitStandardClasses(context, globalob))
    {
        return 1;
    }
    if(!JS_EvaluateScript(context,globalob,script.data(),script.length(),"script",1,&rval))
    {
        return 1;
    }
    std::cout << JSVAL_TO_INT(rval) << "\n";
    JS_DestroyContext(context);
    JS_DestroyRuntime(runtime);
    JS_ShutDown();
    return 0;
}


用命令编译

g++ main.cpp -o out $(js24-config --cflags --libs | tr "\n" " ")

最佳答案

尝试改写此命令,
     g ++ main.cpp -o main -I / usr / local / include / js / -L / usr / local / lib / -lmozjs1.8.5

关于我在上面编写的路径,您必须编写自己的路径,包括其中包含的库和JSAPI.h文件,
最后一个是Spidermonkey库,您可以在lib文件夹中找到它,对我来说,它存在于/ usr / local / lib中

关于c++ - 编译使用Spidermonkey的程序时出现链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20853968/

10-11 07:17