Я пытаюсь скомпилировать исполняемые файлы в подкаталоге project/model/tests
для тестирования и связать файлы модели, которые находятся на project/model
. Однако я не могу заставить его работать. Я успешно добавил родительский каталог, но cmake продолжает сообщать мне, что исходный файл не найден для foo.cpp, который находится в родительском каталоге, а bar.cpp, который находится в текущем каталоге, добавлен правильно.Добавить исполняемый файл из родительского каталога cmake
cmake_minimum_required(VERSION 2.6)
# get parent directory
get_filename_component(MODEL_DIR ${CMAKE_CURRENT_SOURCE_DIR} PATH)
# Locate GTest
find_package(GTest REQUIRED)
# Add parent directory
include_directories(${GTEST_INCLUDE_DIRS} ${MODEL_DIR})
link_directories(${MODEL_DIR})
# all included directories are printed out correctly
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
message(STATUS "dir='${dir}'")
endforeach()
# foo.cpp, which is in the parent directory is not found
add_executable(runTests foo.cpp bar.cpp)
target_link_libraries(runTests ${GTEST_LIBRARIES} pthread)
Спасибо.
спасибо. Теперь он работает :) И я попытаюсь следовать вашим советам относительно link_directories. –
@LimH. Чтобы дать некоторое обоснование предупреждению 'link_libraries()': см., Например, [этот вопрос] (http://stackoverflow.com/q/15423821/1782465), например, о проблемах с ним. – Angew