Компилировать Node addon с общими библиотеками в Windows - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужно скомпилировать аддон Node.js в Windows.У меня проблема в том, что это дополнение опирается на общую библиотеку (libgeometry).У меня не было проблем со связью с libgeometry во время компиляции на Linux и MacOS, но я действительно не знаю, как это сделать на Windows.У меня уже есть libgeometry.dll и libgeometry.dll.a, но как мне связать их во время компиляции?

Вот мой файл binding.gyp:

{
    "targets": [
        {
            "target_name": "test",
            "sources": [
                "src/test.cpp"
            ],
            "include_dirs": [
                "<!@(node -p \"require('node-addon-api').include\")",
                "<(module_root_dir)/native/include"
            ],
            "conditions": [
                ['OS in "linux"', {
                    "libraries": [
                        "-lgeometry",
                        "-L<(module_root_dir)/native/lib/linux/libgeometry",
                        "-Wl,-rpath,\$$ORIGIN/../../native/lib/linux/libgeometry"
                    ],
                    "defines": [
                        "NAPI_CPP_EXCEPTIONS"
                    ]
                }],
                ['OS in "mac"', {
                    "libraries": [
                        "-lgeometry",
                        "-L<(module_root_dir)/native/lib/darwin/libgeometry",
                        "-Wl,-rpath,@loader_path/../../native/lib/darwin/libgeometry"
                    ],
                    "xcode_settings": {
                        "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
                        "CLANG_CXX_LIBRARY": "libc++"
                    }
                }]
            ],
            "dependencies": ["<!(node -p \"require('node-addon-api').gyp\")"],
            "cflags": ["-fexceptions"],
            "cflags_cc": ["-fexceptions"],
            "msvs_settings": {
                "VCCLCompilerTool": {
                    "ExceptionHandling": 1
                }
            }
        }
    ]
}
...