gpt4 book ai didi

c++ - 仅来自链接库的 Gradle NativeExecutable

转载 作者:太空狗 更新时间:2023-10-29 23:15:24 24 4
gpt4 key购买 nike

我正在尝试使用 gradle 创建两个 native 可执行文件。代码是用 cpp 编写的,到目前为止,该过程是使用 makefile 完成的。

我在尝试创建可执行文件时遇到了一个问题,因为它们本身没有任何源代码,而是通过链接其他一些库简单地创建的。

查看生成可执行文件的 makefile 行以更好地理解:

link.exe <linker flags> lib1.obj lib2.obj lib3.obj /out:my_executable_1.exe
link.exe <linker flags> lib1.obj lib4.obj /out:my_executable_2.exe

现在我在 gradle 中做了以下事情:

model {

components {

lib1(NativeLibrarySpec) {}

lib2(NativeLibrarySpec) {}

lib3(NativeLibrarySpec) {}

lib4(NativeLibrarySpec) {}

my_executable_1(NativeExecutableSpec) {
sources {
cpp {
lib library: 'lib1', linkage: 'static'
lib library: 'lib2', linkage: 'static'
lib library: 'lib3', linkage: 'static'
}
}
}

my_executable_2(NativeExecutableSpec) {
sources {
cpp {
lib library: 'lib1', linkage: 'static'
lib library: 'lib4', linkage: 'static'
}
}
}
}
}

当我运行 my_executable_1Executable 任务时,静态库被正确创建,但我没有得到可执行文件作为输出,因为它总是显示:

:linkMy_executable_1Executable UP-TO-DATE
:my_executable_1Executable UP-TO-DATE

有谁知道怎么实现的吗?我是否必须在 gradle 配置中指定任何特殊内容?

我必须承认,在这个具体案例中,文档对我帮助不大。

最佳答案

除了我尝试从一组静态库构建共享库外,我的情况几乎相同。我使用 gradle 2.10。

我可以确认 gradle 将二进制文件与相应源集中的“虚拟 cpp 文件”链接起来,但这是一个丑陋的 hack,我认为这应该可以立即运行,没有任何问题。 (就像使用 make 文件一样简单...)

关于c++ - 仅来自链接库的 Gradle NativeExecutable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29429743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com