2017-01-26 5 views
0

У модуля:Buld DLL с Gradle CPP плагин

mod-native 
------ build 
------ sources 
------------ myDll 
----------------------- cpp 
------------------------------ dllmain.cpp 
------------------------------ MakeString.cpp 
------------------------------ stdafx.cpp 
------------------------------ MyDll.cpp 
----------------------- headers 
------------------------------ base64.h 
------------------------------ tmain.h 
------ build.gradle 

Итак, мой build.gradle

apply plugin: 'cpp' 

model{ 
    toolChains{ 
     vs(VisualCpp){ 
      installDir "C:\\Microsoft Visual Studio 12.0" 
      windowsSdkDir "C:\\Microsoft SDKs\\Windows\\v7.0" 
     } 
    } 
    // target binary for win32 
    platforms{ 
     win32{ 
      architecture "i386" 
      operatingSystem "windows" 
     } 
    } 
    components { 
      toCms(NativeLibrarySpec){ 
       sources{ 
        cpp{ 
         source.srcDir "sources/myDll/cpp" 
         exportedHeaders.srcDir "sources/myDll/headers" 
        } 
       } 
      } 
     } 
} 

Я хочу получ MyDLL.dll файл, но это, кажется Gradle пытается построить * .lib вместо * .dll. Как я могу построить MyDll.dll ?? Благодаря!

ответ

0

Если не указано, gradle будет строить оба * .lib и * .dll, это зависит от того, какую задачу вы выполняете.

При выполнении задачи toCmsDebug Общая библиотека она должна работать

Примечание: Вы должны использовать Gradle расположение по умолчанию (так что вы не должны установить вручную SRCDIR):

src/ 
----*component name*/ 
---------cpp/ 
---------headers/ 

Примечание 2: Если вы хотите скомпилировать * .exe, убедитесь, что вы запускаете задачу, начинающуюся с «install» (например: installMyCmsDebugExecutable), это имеет большое значение, поскольку Visual Studio будет запускать этот.

Вы можете проверить, какая задача выполняется для сборки в * .vcxproj, XML тег <NMakeBuildCommandLine>

+0

Спасибо !! Оно работает –