首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >已定义的链接器错误

已定义的链接器错误
EN

Stack Overflow用户
提问于 2013-09-23 11:27:27
回答 1查看 862关注 0票数 3

我在做一个nodejs广告。在我的visual studio项目中有5个文件:

代码语言:javascript
复制
comm.h/cc, node_main.cc, util.h/cc

我将它与库node.lib链接起来。

node_main.cc有一个功能:

代码语言:javascript
复制
v8::Handle<v8::Value> StartMethod(const v8::Arguments &args) {
    v8::HandleScope scope(args.GetIsolate()); // node_isolate
    int length = args.Length();
    std::vector<std::unique_ptr<char[]>> argv;
    for(int i=0;i<length;++i) {
        if(args[i]->IsString()) {
            v8::String::Utf8Value str(args[i]);
            const int strLen = ToCStringLen(str);
            if(strLen) {
                std::unique_ptr<char []> data(new char[strLen+1]);
                strcpy_s(data.get(), strLen+1, ToCString(str));
                argv.push_back(std::move(data));
            }
        }
    }
    return scope.Close(v8::Int32::New(MainMethod(argv.size(), &(argv[0]._Myptr))));
}

当我构建解决方案时,我会得到以下链接器错误:

代码语言:javascript
复制
1>node.lib(node.exe) : error LNK2005: "public: bool __thiscall v8::Value::IsString(void)const " (?IsString@Value@v8@@QBE_NXZ) already defined in communicator.obj
1>node.lib(node.exe) : error LNK2005: "public: class v8::Local<class v8::Value> __thiscall v8::Arguments::operator[](int)const " (??AArguments@v8@@QBE?AV?$Local@VValue@v8@@@1@H@Z) already defined in communicator.obj
1>node.lib(node.exe) : error LNK2005: "public: int __thiscall v8::Arguments::Length(void)const " (?Length@Arguments@v8@@QBEHXZ) already defined in communicator.obj
1>node.lib(node.exe) : error LNK2005: "public: class v8::Isolate * __thiscall v8::Arguments::GetIsolate(void)const " (?GetIsolate@Arguments@v8@@QBEPAVIsolate@2@XZ) already defined in communicator.obj

IsString(), Arguments::[] and GetIsolate()函数仅用于hello.ccArguments::Length()用于communicator.cc。即使这样,所有的错误都会引用communicator.cc

我只调用cc文件中的函数,没有给出任何新的定义。

有什么问题吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-24 10:34:44

我也遇到了同样的问题,我找到了一个解决方案这里。在每个#包含之前加上一个#include 。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18958084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档