Может построить тривиальный проект с Meson, но не с CMake

Я хочу получить два исполняемых файла из моего исходного кода C ++ (тестирование и выпуск). У меня есть две функции main () в двух отдельных файлах C ++.

С мезон Собрать систему легко:

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, код должен быть в порядке?

0

Решение

Создавая один и тот же код на другом ПК, у меня не было такой проблемы.

Я бы закрыл / удалил этот вопрос.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]