2013-08-04 67 views
10

Khi tôi muốn biên dịch, tôi cần phải xác định -std=c++11 như thế này:Làm -std = C++ 11 mặc định trong mac terminal

g++ -Wall -std=c++11 main.cpp -o main 

và tôi tự hỏi nếu có một giải pháp để thiết lập -std = C++ 11 cờ vĩnh viễn để có thể thực hiện:

g++ -Wall main.cpp -o main 

không có cờ.

+1

'bí danh g ++ = 'g ++ -std = C++ 11''? –

+1

Một giải pháp khác sẽ được vá GCC để nó bao gồm một số tùy chọn hợp lý hơn/tươi hơn so với mặc định cho một tiêu chuẩn 15 tuổi ... –

+0

vá? Nếu không, bí danh hoạt động tốt, cảm ơn. – Choubidou

Trả lời

10

Tạo bí danh: alias g++='g++ -std=c++11' nên thực hiện thủ thuật.

(Tuy nhiên, phiên bản của GCC mà đi kèm với OS X là rất cổ xưa mà nó không hỗ trợ C++ 11, bạn muốn được tốt hơn bằng cách sử dụng clangclang++.)

+0

Hum liên quan đến kêu vang: kêu vang --version của Apple LLVM phiên bản 4.2 (vang-425.0.28) (dựa trên LLVM 3.2svn) Target : x86_64-apple-darwin12.4.0 Mô hình chủ đề: posix nhưng tôi không biết cách sử dụng nó – Choubidou

+2

@Choubidou Vâng, giống như bạn sử dụng GCC. (Nhưng hey, bạn không thể chỉ google "clang usage" hay "clang manual"? Hoặc gõ 'clang --help' vào dòng lệnh?) –

+1

Bạn nói đúng. clang ++ -std = C++ 11 main.cpp -o main :) – Choubidou

5

Tôi biết điều này đã đã được chấp nhận nhưng tôi cảm thấy như tôi có một số lời khuyên để cung cấp. Đối với một trong những bạn nên sử dụng một makefile cho c + +, đây là một trong tôi sử dụng để trả lời trên SO.

CFLAGS=-std=c++11 
CFLAGS+=-stdlib=libc++ 
CC=clang++ 
#flags for test.c 
cc=clang 
DEBUG=-g 
#warnings 
WARNINGS=-Weverything 
#always have -Weverything on for SO lol 
OPT= -O0 -O1 -O2 -O3 -O4 

test: test.cpp 
    $(info set CC for compiler) 
    $(CC) $(CFLAGS) $< -o [email protected] $(DEBUG) 

stack: stack.cpp 
    $(CC) $(CFLAGS) stack.cpp -o [email protected] $(DEBUG) $(WARNINGS) 

testc: test.c 
    $(cc) $< -o [email protected] $(DEBUG) 


clean: 
    rm test 

Bây giờ bất cứ khi nào tôi tải xuống một số mã crappy từ SO, tôi có thể dễ dàng thay đổi cờ nếu muốn.

Đối với bí danh bash tôi sẽ đề nghị bạn đặt biệt hiệu như vậy alias clang++11='clang++ -std=c++11 theo cách này bạn không ghi đè lên clang++ nếu bạn không muốn sử dụng tiêu chuẩn C++ 11. Cuối cùng, bạn có thể thêm dòng tôi vừa cho bạn xem .bash_profile trên một máy Mac nằm trong thư mục nhà hoặc ~ của bạn, điều này sẽ làm cho thay đổi này vĩnh viễn. Khi bạn thay đổi nó chạy source .bash_profile để đặt các thay đổi có hiệu lực. Trên linux tôi nghĩ rằng tập tin được gọi là .bashrc. Hy vọng rằng những lời khuyên này sẽ giúp bạn ra khi ur c + + ing, tôi sẽ khuyên bạn nên tìm hiểu dòng lệnh mac, có sự khác biệt từ Linux, nó có thể rất hữu ích để biết một số trong những điều nó có thể làm.

Các vấn đề liên quan