Я прошу это, чтобы убедиться, что мой код реализован правильно. Если это так, то это более чем вероятно означает, что моя библиотека в какой-то момент неверна, что сужает проблему. Я получаю следующие ошибки при попытке построить свой тест, используя make t1
:
make[3]: *** No rule to make target `/home/esias/VL3/modular2/vlMain/test', needed by `vlMain/CMakeFiles/t1'. Stop.
make[2]: *** [vlMain/CMakeFiles/t1.dir/all] Error 2
make[1]: *** [vlMain/CMakeFiles/t1.dir/rule] Error 2
Предположим, я хотел бы собрать исполняемый файл «exec1» и протестировать его. В идеале это можно сделать, добавив исполняемый файл к цели и запустив make <target>
— Пожалуйста, поправьте меня, если я ошибаюсь.
Насколько я знаю, это делается с помощью аргумента —build-and-test в add_test. Это код, который я использую:
ADD_TEST(test1 exec1
--build-two-config
--build-and-test
"${CMAKE_SOURCE_DIR}/vlMain/vlMPIMain.cpp" #source to create from?
"${CMAKE_BINARY_DIR}/Tests/exec1" #output folder?
)
add_custom_target(t1 COMMAND ${CMAKE_CTEST_COMMAND} DEPENDS test1)
TARGET_LINK_LIBRARIES(t1
${GLEW_LIBRARY}
vlapp
vlrender
vldm
)
Я хотел бы построить исполняемый файл с именем «exec1», используя ${CMAKE_SOURCE_DIR}/vlMain/vlMPIMain.cpp
как исходный код, и положить его в ${CMAKE_BINARY_DIR}/Tests/exec1
Тогда я хотел бы связать пару библиотек с ним.
Правильна ли моя реализация? Можно ли это улучшить?
Благодарю.
Задача ещё не решена.