Я хочу получить два исполняемых файла из моего исходного кода 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, код должен быть в порядке?
Создавая один и тот же код на другом ПК, у меня не было такой проблемы.
Я бы закрыл / удалил этот вопрос.
Других решений пока нет …