linux cmake静态库,linux – 使用cmake重用静态库的自定义makefile

我想这将是一个关于在cmake中包含现有makefile的库的一般性问题;但这是我的背景 –

我试图将scintilla包含在另一个CMake项目中,我有以下问题:

在Linux上,scintilla在(例如)${CMAKE_CURRENT_SOURCE_DIR} / scintilla / gtk目录中有一个makefile;如果您在该目录中运行make(像往常一样),您将获得${CMAKE_CURRENT_SOURCE_DIR} /scintilla/bin/scintilla.a文件 – 我猜这是静态库.

现在,如果我尝试使用cmake的ADD_LIBRARY,我必须在cmake中手动指定scintilla的来源 – 我宁愿不要弄乱它,因为我已经有了一个makefile.所以,我宁愿调用通常的scintilla make – 然后指示CMAKE以某种方式引用生成的scintilla.a. (我想这不会确保跨平台兼容性 – 但请注意,目前跨平台对我来说不是问题;我只想构建scintilla作为已经使用cmake的项目的一部分,仅在Linux中)

所以,我尝试了一下这个:

ADD_CUSTOM_COMMAND(

OUTPUT scintilla.a

COMMAND ${CMAKE_MAKE_PROGRAM}

WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scintilla/gtk

COMMENT "Original scintilla makefile target" )

…但是,add_custom_command添加了“没有输出的目标”;所以我正在尝试几种方法来构建它,所有这些都失败了(作为注释给出的错误):

ADD_CUSTOM_TARGET(scintilla STATIC DEPENDS scintilla.a) # Target "scintilla" of type UTILITY may not be linked into another target.

ADD_LIBRARY(scintilla STATIC DEPENDS scintilla.a) # Cannot find source file "DEPENDS".

ADD_LIBRARY(scintilla STATIC) # You have called ADD_LIBRARY for library scintilla without any source files.

ADD_DEPENDENCIES(scintilla scintilla.a)

我显然用cmake引用了一个noob – 所以,是否有可能让cmake运行一个预先存在的makefile,并“捕获”它的输出库文件,这样cmake项目的其他组件可以链接它?

非常感谢任何答案,

干杯!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值