как добавить -std = c ++ 11, чтобы сделать файл - PullRequest
0 голосов
/ 22 мая 2019

Я хочу добавить -std = c ++ 11 в мой make-файл, но я не делаю Куда добавить, вот мой код:

hw07: test.o functions.o
    g++ test.o functions.o -o hw07
test.o: test.cpp headerfile.h
    g++ -c test.cpp
functions.o: functions.cpp  headerfile.h
    g++ -c functions.cpp
clean:
    rm *.o hw07

в приведенном выше коде, куда я должен добавить stdc ++11 код, пожалуйста, помогите мне о ...

Ответы [ 2 ]

2 голосов
/ 22 мая 2019

Вместо того, чтобы прописывать все правила и все команды, используйте переменные и неявные правила для построения вашей программы:

CXXFLAGS = -std=c++11

hw07: test.o functions.o

test.o: test.cpp headerfile.h

functions.o: functions.cpp  headerfile.h

clean:
    rm *.o hw07

Это позволит make создавать объектные файлы, используя $(CXXFLAGS) в качестве параметров для передачи компилятору. Затем make соберет программу hw07, используя файлы, перечисленные в ее зависимостях.


Другие флаги, которые хорошо иметь при компиляции исходных файлов: -Wall и -Wextra. Они включают больше предупреждающих сообщений от компилятора, которые почти во всех случаях указывают на подозрительные вещи, которые могут привести к проблемам.

0 голосов
/ 22 мая 2019

Вы можете просто добавить -std=c++11 после каждого g++:

hw07: test.o functions.o
    g++ -std=c+++11 test.o functions.o -o hw07
test.o: test.cpp headerfile.h
    g++ -std=c+++11 -c test.cpp
functions.o: functions.cpp  headerfile.h
    g++ -std=c+++11 -c functions.cpp
clean:
    rm *.o hw07

Также вы можете использовать переменную:

CPP_FLAGS='-std=c++11'

hw07: test.o functions.o
    g++ ${CPP_FLAGS} test.o functions.o -o hw07
test.o: test.cpp headerfile.h
    g++ ${CPP_FLAGS} -c test.cpp
functions.o: functions.cpp  headerfile.h
    g++ ${CPP_FLAGS} -c functions.cpp
clean:
    rm *.o hw07
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...