C ++ Node.js — получил ошибку LNK 2001

есть проблема с нерешенной внешностью.

проблема -> файл заголовка (myImpressiveHeaderFile.h) говорит, что он не может найти символ. Но другой файл (holys_i.c) c-файл существует в этом проекте и содержит эти символы.

если я создаю новый win32-console-project (пустой) и добавляю эти файлы (и третий файл, с основной функцией и включающим заголовочный файл), он работает отлично.

НО -> если я позволю node-gyp построить проект (те же файлы, кроме основного файла xD, который является файлом spcefic узла с v8.h и node.h — но также включающим заголовочный файл) — я получил ошибки (LNK 2001 см. Выше) ,

кажется, что компоновщик переходит в c-файл или нет, если я создаю его с помощью node-gyp? или node-gyp не компилирует c-файлы? что не может быть? или же?

У вас есть идеи, что я могу сделать / проверить / проверить?

РЕДАКТИРОВАТЬ (добавить пример):

Первый пример (работает)!
Заголовочный файл (1) (добавляется как внешняя переменная — имя top.h)

EXTERN_C const IID IID_IOPCServer;

C-File (определил var — имя top_i.c)

MIDL_DEFINE_GUID(IID, IID_IOPCServer,0x39c13a4d,0x011e,0x11d0,0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3);

Другой заголовочный файл (2) (включен заголовочный файл 1 — top.h — ничего не делать — имя stop.h)

CPP-файл заголовочного файла (2) (включен заголовочный файл 2 — используется переменная — имя stop.cpp)

hr = CoCreateInstance (clsid, NULL, CLSCTX_LOCAL_SERVER ,IID_IOPCServer, (void**)&m_IOPCServer);

Основной файл CPP (включает заголовочный файл 2 — не используется var — name test.cpp)
Этот Фюле использует Функции stop.cpp. Ans stop.cpp использовал extern var.

Когда я добавляю эти файлы в пустой проект консоли win32 — это работает. ВСЕ ХОРОШО!

НО в другом примере

(тот же top.h, тот же top_i.c, тот же stop.h и тот же stop.cpp)
я позволил построить узел-гип.

Обязательный Gyp:

{
"targets": [
{
"target_name": "test",

"sources": ["src/top.h",
"src/top_i.c",

"src/stop.h",
"src/stop.cpp",

"src/test.cpp"]
}
]
}

внутри test.cpp sth вот так:

#include <node.h>
#include <v8.h>

#include "stop.h"
Handle<Value> Method(const Arguments& args) {
HandleScope scope;

return scope.Close(String::New("world"));
}

void init(Handle<Object> target) {
NODE_SET_METHOD(target, "hello", Method);
}

NODE_MODULE(test, init);

это Пример проваливается oo

stop.obj : error LNK2001: unresolved external symbol "IID_IOPCServer".
[D:\Dev\Workspaces\Nax\Github\node-test\build\test.vcxproj]
stop.obj : error LNK2001: unresolved external symbol "IID_IOPCItemMgt".
[D:\Dev\Workspaces\Nax\Github\node-test\build\test.vcxproj]
stop.obj : error LNK2001: unresolved external symbol "IID_IOPCSyncIO".
[D:\Dev\Workspaces\Nax\Github\node-test\build\test.vcxproj]
D:\Dev\Workspaces\Nax\Github\node-test\build\Release\test.node : fatal error LNK1
120: 3 unresolved externals [D:\Dev\Workspaces\Nax\Github\node-test\build\test.vcxproj]

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]