Проект Gradle Native C: заголовочный файл не включается из другого заголовочного файла с относительным путем - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь интегрировать сторонний SDK (написанный на c) в мое родное приложение C Gradle. У меня проблемы с #includes из других заголовков в SDK.

Если я компилирую, используя инструменты сборки eclipse, все прекрасно скомпилируется

Однако, когда я переместил все в Gradle (из-за гибкости с другими шагами в сборке) ... я не могу понять, почему не найдены файлы .h, на которые ссылаются из другого .h. (Обратите внимание, что это создается родительским проектом)

Все пути в SDK относятся к корню SDK

Насколько я понял, все файлы заголовков будут указаны в следующем блоке скрипта

exportedHeaders {
        srcDirs  { <headers in here> }
} 

У меня следующая структура каталогов

/ts3
  /include
  /lib
      /include
           /teamlog
               - logtypes.h
           /teamspeak
               - public_definitions.h
  /src
     -HelloWorld 

build.gradle

apply plugin: 'c'
    model {
        platforms {
         x64 {
            architecture "x86_64"
             }
        }

        components {
            tada(NativeLibrarySpec){
                 targetPlatform "x64"
                  sources {
                     c {
                        source {            
                            srcDirs "src"
                            include "*.c"
                        }
                         exportedHeaders {
                           srcDirs  "include",
                                "C:\\Program Files\\Java\\jdk1.8.0_162\\include",
                                "C:\\Program Files\\Java\\jdk1.8.0_162\\include\\win32",
                                "lib\\ts3_sdk_3.0.4\\include\\teamspeak"            
                       }            
                    }
                }
            }
        }
    }     

После компиляции в Windows 10 я получаю следующую ошибку

ts3\lib\ts3_sdk_3.0.4\include\teamspeak\public_definitions.h(4): fatal error C1083: Cannot open include file: '../../../../ts3_sdk_3.0.4/include/teamlog/logtypes.h': No such file or directory
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...