2013-11-16 3 views
0

Я пытаюсь понять MakeFiles, и я пытаюсь установить CFLAGS на C++ 11 в мой файл make. Я прочитал следующее: Makefile modification to support c++11 я реализовал один из решений, однако, это не похоже на работу, я получаю ту же ошибку:Makefile - C++ 11

error: ‘i’ does not name a type for(auto i=begin; (i != end); i++)

Вот мой Makefile:

# Location of the Python Header files 
# This is system dependant. 

PYTHON_VERSION = 2.7 
PYTHON_INCLUDE = /usr/include/python$(PYTHON_VERSION) 

CFLAGS += -03 
CFLAGS += -std=c++0x 
CFLAGS += -pg -D_DEBUG -g -c -Wal 
# location of the Boost Python include files and library 

BOOST_INC = /usr/include 
BOOST_LIB = /usr/lib 

WAV_TARGET = /includes/Wav 
WAV_SOURCE = Wav 

# Compile the .wav Python and Cpp file 

$(WAV_TARGET).so: $(WAV_TARGET).o 
    g++ -shared -Wl, --export-dynamic ($WAV_TARGET).o -L$(BOOST_LIB) -lboost_python - 
      L/usr/lib/python$(PYTHON_VERSION)/config -lpython$(PYTHON_VERSION) -o 
      $(WAV_TARGET).so 
$(WAV_TARGET).o: $(WAV_SOURCE).cpp 
g++ -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c Wav.cpp 

Мне, наверное, не хватает чего-то действительно глупого, но где я здесь ошибся?

+0

Что vwersion НКУ вы используете? – Manu343726

+0

Флаг должен быть '-std = C++ 11' и какая версия' gcc'? –

+0

Привет, Manu343726 Я использую версию 4.8.1 – Phorce

ответ

2

Ваша цель даже не используется CFLAGS при вызове g++. Вы можете добавить $(CFLAGS) к цели:

$(WAV_TARGET).o: $(WAV_SOURCE).cpp 
    g++ $(CFLAGS) -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c Wav.cpp 

Или просто добавьте -std=c++11 к флагам, которые вы перечислили:

$(WAV_TARGET).o: $(WAV_SOURCE).cpp 
    g++ -std=c++11 -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c Wav.cpp 
+0

Когда я добавляю C++ 11, я получаю следующее:/bin/sh: 1: Синтаксическая ошибка: "(" неожиданный make : *** [/includes/Wav.so] Ошибка 2 – Phorce

+0

Что именно вы добавили и где? –

+0

Как и в вашем примере, я добавил -std = C++ 11 после g ++, попробовал с $ (CFLAGS) – Phorce

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