Clang неправильно интерпретирует инструкцию #import как файл, а не как фреймворк - PullRequest
0 голосов
/ 23 февраля 2019

у меня #import <customframeworkname/customframeworkname.h>.Xcode перечисляет фреймворки в разделе «Связанные фреймворки и библиотеки».

Однако при компиляции из командной строки с использованием Clang он говорит:

../cppsrc/stuff.mm:6:9: fatal error: 'customframeworkname/customframeworkname.h' file not found
#import <customframeworkname/customframeworkname.h>

Я попытался изменить его на относительный путь,делает #import <../customfwdir/customframeworkname/Headers/customframeworkname.h>.Теперь он находит файл, но поскольку среда содержит много заголовков, она не распознает внутренние заголовки платформы, в которых используется #import <customframeworkname/otherheader.h>.Очевидно, что изменение всей инфраструктуры было бы плохо.

Я очень новичок в разработке для MacOS, любые советы в правильном направлении будут оценены!

Дополнительный контекст: создание кроссплатформенного узлааддон .js, поэтому я компилирую его через командную строку, в частности, node-gyp.В Node-gyp есть команда для создания файла проекта xcode, которую я использую, чтобы убедиться, что параметры сборки, которые я определяю в файле привязок, правильно переведены в настройки xcode.

{
  "targets": [
    {
      "target_name": "myproj",
      "cflags!": [ "-fno-exceptions" ],
      "cflags_cc!": [ "-fno-exceptions" ],
      "sources": [ 
        "cppsrc/wrapper.cc"
      ],
      "conditions": [
        ["OS=='mac'", {
          "xcode_settings": {
            "FRAMEWORK_SEARCH_PATHS": "$(SRCROOT)/**"
          },
          "link_settings": {
            "libraries": [
              "customfws/fwname.framework"
            ]
          },
          "sources": [
            "cppsrc/stuff.mm"
          ]
        }]
      ],
      "include_dirs": [
        "<!@(node -p \"require('node-addon-api').include\")"
      ],
      'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
    }
  ]
}
...