使用Gradle cpp插件

时间:2017-01-26 15:34:50

标签: c++ gradle dll

有一个模块:

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?谢谢!

1 个答案:

答案 0 :(得分:0)

如果未指定,gradle将同时构建* .lib和* .dll,这取决于您执行的任务。

如果执行任务 toCmsDebug 共享,它应该可以运行

注意:您应该使用gradle默认布局(因此您不必手动设置 srcDir ):

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

注2: 当你想编译* .exe时,一定要运行以“install”开头的任务(例如: installMyCmsDebugExecutable ),这会产生很大的不同,因为Visual Studio会运行这个。

您可以在* .vcxproj中查看为构建执行的任务,xml标记为<NMakeBuildCommandLine>