Я пробовал совет в this answer, но это для GCC и в любом случае не помогло.Как включить -std = C++ 11 и -lpthread в makefile?
Я хочу #include <thread>
в файле, так что у меня есть сделать файл как следующее:
OBJS = clitest.o Sources/NClient.o
CC = g++
DEBUG = -g
CFLAGS = -Wall -c $(DEBUG)
LFLAGS = -Wall $(DEBUG)
clitest: $(OBJS)
$(CC) $(LFLAGS) $(OBJS) -o clitest
Где я должен включать -std=c++11
и -lpthread
в этом? Я пробовал только о каждой комбинации я могу, но я по-прежнему получаю эту ошибку, когда я бегу make
:
/usr/include/c++/4.8.3/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
Я считаю, что это команда это работает?
[[email protected] NClient]make
g++ -c -o clitest.o clitest.cpp
Вот файл исходного кода, также:
#include <thread>
#include <string>
void task(std::string msg){
std::cout << msg << '\n';
}
...
...
std::thread t1(task, "message");
client->create();
t1.join();
Он по-прежнему делает ту же ошибку - я добавил некоторые релевантный код на вопрос. – galois
@jaska Кажется, вы не переопределяете правило '% o:% .cpp' в своем make-файле. Поставьте те же опции в 'CXXFLAGS', пожалуйста. –