gpt4 book ai didi

build-process - cmake命令语法问题

转载 作者:行者123 更新时间:2023-12-04 05:27:27 32 4
gpt4 key购买 nike

我需要 CMAKE 宏的语法,该宏从lex/yacc之类的工具生成.cc和.h文件。

有人可以告诉我以下人为设计示例的语法:

说我有一个依赖于x.cc和x.h的文件y.cc,提到的两个文件是由工具z_tool从文件x.z生成的。它的语法是什么?

对于此示例,假设y.cc将被转换为静态库,并且由于我对CMAKE还是很陌生,所以对于这个人为的示例来说,完整的CMakellist.txt将会非常有帮助。我正在寻找一种可移植的解决方案作为我的工具在Windows以及UNIX变体上都可以使用我正在使用的软件。

最佳答案

而不是给您一个人为的例子的答案,而是使用flexbison生成可执行文件的方式

find_package(BISON)
find_package(FLEX)

BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cc)
FLEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.cc)
ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)

include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_executable(Foo
Foo.cc
${BISON_MyParser_OUTPUTS}
${FLEX_MyScanner_OUTPUTS})
target_link_libraries(Foo ${FLEX_LIBRARIES} ${BISON_LIBRARIES})

缺省安装中包括针对bison/flex的CMake查找软件包,因此这是跨平台的。

通常,要创建一个以后将用作输入的输出,可以使用 add_custom_command函数。如果您使用自定义命令的输出作为库或可执行文件的输入,则CMake会在编译库/可执行目标的源代码之前知道运行您的自定义命令。

关于build-process - cmake命令语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2491421/

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