我想从我的 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' 的多重定义
不过main()函数是在“source1.cpp”和“test.cpp”中定义的,所以应该没有冲突。
考虑到从 Meson 构建中看起来代码应该没问题,我该如何解决这个问题?