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

标签 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),但没有得到第二个,错误是:

Multiple definition of 'main'

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

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

最佳答案

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

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

关于c++ - 可以使用 Meson 构建一个简单的项目,但不能使用 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49241089/

相关文章:

C++:从类外部访问公共(public)成员函数

c++ - 凭据提供程序和命名管道

c++ - 当一个函数调用另一个函数时,它使用的内存会发生什么变化?

cmake - 如何将预构建的目标文件添加到 cmake 中的可执行文件中

c++ - 在 Eclipse for C++ 中更改可执行文件名称

c - 可执行文件的大小?

c++ - Turbo C++ 时间分辨率高达毫秒

c++ - CMAKE:构建可执行文件和库并链接它们

c++ - 在哪里放置 emscripten 和 CMake 的库

java - 如何使Python脚本成为可执行程序