2014-10-03 2 views
0

Я пишу CMakeLists.txt с этим содержанием:CMake add_subdirectory не компилировать правильно

project(FullLibrary C) 
enable_language(C ASM) 
cmake_minimum_required(VERSION 2.8) 
add_subdirectory("${PROJECT_SOURCE_DIR}/Asf") 

Asf библиотека от Atmel будет построена на микропроцессорах. Я могу скомпилировать его напрямую, если я скомпилирую его изнутри этого файла. То, что я сделал, это создать еще один файл в директории с таким содержимым:

set (ASF_SOURCES 
    source_files_removed_for_brevity.c 
) 
add_library(asf4arm ${ASF_SOURCES}) 
SET_TARGET_PROPERTIES(asf4arm PROPERTIES LINKER_LANGUAGE C)# CXX ASM) 
SET_TARGET_PROPERTIES(asf4arm PROPERTIES LINK_FLAGS "${LINKER_FLAGS}") 

ошибка я получаю, когда я компилирую это: фатальная ошибка: открытие файла зависимостей Asf_arm/CMakeFiles/asf4arm.dir/Asf/SAM/драйверы /usart/usart.c.obj: Нет такого файла или каталога Я проверил, и каталог пуст, но у меня нет компиляции. Если я копирую и вставляю список внутри основного CMakeLists.txt, и я обновляю путь, который все правильно компилируется, и библиотека правильно сгенерирована. Я думаю, что мне не хватает чего-то глупого, что может видеть другой глаз. Любые предложения?

ответ

0

У меня есть ощущение, что ваша переменная project_sourc_dir не имеет правильного пути.

Try, изменение add_subdirectory ("$ {PROJECT_SOURCE_DIR}/Asf") в add_subdirectory (Asf)

+0

Спасибо за ваш комментарий Ник. Я уже попробовал. Я перепробовал сейчас, но это не сработает. Ошибка такая же. Спасибо за вашу попытку. – andyinno

+0

Похоже, что имя каталога неверно. Похоже, что имя dir является Asf4Arm, а не просто Asf .. – Nick

+0

да. Я это заметил. Я просто не понимаю, почему. Возможная ошибка с перекрестными компиляторами? Сегодня будет тот парень, который настроил его сначала. Он знает, что кокетка намного лучше меня. Я посмотрю, выяснит ли он проблему. – andyinno

Смежные вопросы