2017-01-17 4 views
0
cmake_minimum_required(VERSION 3.5.1 FATAL_ERROR)  
project(WINDOW CXX) 
set(WINDOW_SRCS window.cpp)  
add_executable(Window ${WINDOW_SRCS})  
set(CMAKE_CXX_STANDARD 14) 

find_library(OPENGL_LIB 
    NAMES lGLEW lglfw3 lGL lrt lm ldl lXrandr lXinerama lXxf86vm lXext lXcursor lXrender lXfixes lX11 lpthread lxcb lXau lXdmcp lXi lSOIL lassimp 
    PATHS /usr/lib /usr/local/lib 
) 

if(OPENGL_LIB) 
    target_link_library(Window ${OPENGL_LIB}) 
endif() 

Я пытаюсь написать файл CMakeList.txt. Я получаю ошибку в сгенерированном MakefileКак написать файл CMakeList

makefile: 1: *** отсутствует разделитель. Стоп.

Я добавил tabs в начале каждой строки. Я не могу понять, где ошибка

+0

Пожалуйста, добавьте команды, которые вы вводите, для создания make-файлов и создания из CMake. – roalz

+1

Кроме того, может быть лучше использовать средство find_package(), см. Ссылку FindOpenGL здесь: https://cmake.org/cmake/help/v3.0/module/FindOpenGL.html – roalz

+0

Команда 'cmake .' –

ответ

0

Проблема в том, что вы не очистили созданные CMake файлы из предыдущего запуска конфигурации CMake.
Удалите файл CMakeCache.txt и Makefile и в каталоге CMakeFiles, и если они существуют, файлы cmake_install.cmake и CTestTestfile.cmake.
Теперь вы можете повторно запустить конфигурацию CMake через cmake ..
Затем выполните make, и все должно быть в порядке.


В ответ я не пытался улучшить свой CMakeLists.txt, но только, чтобы этот вопрос вы столкнулись, чтобы уйти.
В противном случае, как предлагает @roalz, вы можете использовать find_package(), чтобы найти OpenGL.
Другим «усовершенствованием» может быть использование сборок вне источника. Таким образом, все результаты сборки будут содержаться в одном каталоге без помех исходному дереву. В этом случае, чтобы начать с чистого состояния и повторно запустить конфигурацию CMake, вам нужно будет только удалить этот каталог сборки, а не все отдельные файлы, созданные вокруг. Это особенно полезно для проектов с вложенными исходными каталогами (более одного уровня).

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