可以用Meson构建一个简单的项目,但不能用CMake构建

时间:2018-03-12 17:21:50

标签: c++ cmake executable meson-build

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

使用Meson构建系统很容易:

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'

的多重定义

但是,main()函数在" source1.cpp"中定义。和" test.cpp",所以不应该有冲突。

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

1 个答案:

答案 0 :(得分:1)

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

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