Как добавить файлы в проект Eclipse CDT с помощью CMake?

StackOverflow https://stackoverflow.com/questions/888085

  •  23-08-2019
  •  | 
  •  

Вопрос

У меня возникла проблема с добавлением исходных файлов и файлов заголовков в мой проект Eclipse CDT с помощью CMake.В моем тестовом проекте (который прекрасно генерирует и собирает) у меня есть следующий файл CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)

project(WINCA)

file(GLOB WINCA_SRC_BASE "${WINCA_SOURCE_DIR}/src/*.cpp")
file(GLOB WINCA_SRC_HPP_BASE "${WINCA_SOURCE_DIR}/inc/*.hpp")

add_library(WINCABase ${WINCA_SRC_BASE} ${WINCA_SRC_HPP_BASE})

Это работает нормально, но полученные файлы проекта Eclipse не содержат ссылок на исходные файлы или файлы заголовков.Кто-нибудь знает, почему?Есть ли какая-либо другая команда cmake, которую мне нужно использовать для добавления файлов в проект?

Это было полезно?

Решение 3

Проблема, с которой я столкнулся, заключалась в том, что я сделал сборку «из исходного кода» вместо сборки «вне исходного кода».Теперь все работает нормально, и на самом деле в Wiki было много информации об этом, но я почему-то ее неправильно понял.

Другие советы

Я понимаю, что прошло много времени с тех пор, как вы опубликовали это, но, кстати, у меня это нормально работает с версиями CMake 2.6 или 2.7 (магистраль), генерирующими для Eclipse/Ganymede.Что я делаю, это сначала запускаю

cmake -G "Eclipse CDT4 - Unix Makefiles" /path/to/src

который генерирует файлы проекта Eclipse, а также файлы makefile, затем «Импортировать проект» в Eclipse.

Прекрасно работает...

хитрый

Я использую CMake 2.4, а не 2.6, но в версии 2.4 они специально предостерегают от использования GLOB-объектов для поиска файлов для сборки.

Это связано с тем, что он заметит, добавляются или удаляются новые файлы, поэтому не сможет выяснить зависимости.

Если вам нужно явно добавить файлы в CMakeLists.txt, тогда этот файл будет новее, чем файлы makefile и файлы кэша.Таким образом, CMake будет знать, как их восстановить.

Если файлы добавляются с помощью glob, файлы CMake не знают об изменениях, когда вы добавляете новые файлы, поэтому CMake не знает, что ему необходимо повторно создавать файлы makefile и т. д.То же самое касается обычных make-файлов и проектов Visual Studio.

Если в документации CMake 2.6 явно не указано, что добавлять такие файлы можно, я бы этого избегал.Управлять исходными файлами в cmake не так уж и сложно.Как часто вы добавляете новые файлы?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top