作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 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/
我正在尝试使用 gradle 创建两个 native 可执行文件。代码是用 cpp 编写的,到目前为止,该过程是使用 makefile 完成的。 我在尝试创建可执行文件时遇到了一个问题,因为它们本身没
我是一名优秀的程序员,十分优秀!