可以使用Meson构建一个琐碎的项目,但不能使用CMake

Can build a trivial project with Meson but not with CMake

本文关键字:项目 但不能 CMake 一个 构建 Meson 可以使      更新时间:2023-10-16

我想从我的C++源代码(测试和发布(中获取两个可执行文件。我在两个单独的C++文件中有两个main((函数。

使用介子构建系统,很容易:

project('PrjName', 'cpp')
mainSrc = ['header1.hpp', 'source1.cpp', 'source2.cpp']
testSrc = ['header2.hpp', 'source2.cpp', 'test.cpp']
mainExe = executable('prjName', mainSrc)
testExe = executable('prjNameTest', testSrc)

我无法与CMake得到相同的结果:

cmake_minimum_required(VERSION 3.10)
project("PrjName")
set(SOURCES
    "header1.hpp"
    "source1.cpp"
    "source2.cpp"
)
set(TEST_SOURCES
    "header2.hpp"
    "source2.cpp"
    "test.cpp"
)
add_executable("prjName" ${SOURCES})
add_executable("prjNameTest" ${TEST_SOURCES})

我得到第一个可执行文件(prjName(,但没有第二个,出现错误:

"主要"的多重定义

但是,main(( 函数在 "source1.cpp" 和 "test.cpp" 中定义,因此应该没有冲突。

考虑到从 Meson 构建来看代码应该没问题,我该如何解决此问题?

在不同的PC上构建相同的代码,我没有这样的问题。

我会关闭/删除这个问题。

相关文章: