Да, CMake обычно берет имя исходного файла и добавляет .o
при компиляции соответствующих объектных файлов. Например, исходный файл image.cpp
будет скомпилирован в image.cpp.o
. Makefile, сгенерированный CMake, будет содержать уникальную цель <someSourceFileName>.o
для каждого исходного файла, где <someSourceFileName>
может быть .cc
, .cpp
, .c
, et c.
Ошибка :
ld: library not found for -linclude
означает, что вы пытались связать библиотеку с именем include
с исполняемым файлом. Это, вероятно, не то, что вы намерены. Похоже, что include
на самом деле является вашим каталогом включений, и вы уже указали каталоги включений в вашем CMake с помощью следующей строки:
include_directories(include)
Чтобы удалить ошибку, просто извлеките include
из target_link_libraries()
команда, например, так:
target_link_libraries( executable ${OpenCV_LIBS} )