2

OSX(Snow Leopard)マシンにbrew経由でgcc 4.8をインストールしました。

make を実行すると、オブジェクト ファイルには古いバージョンの g++ が使用され、実行可能ファイルには新しいバージョンが使用されます。

$ make
g++    -c -o myprogram.o myprogram.cc
g++-4.8 -g -Wall -o myprogram myprogram.o

私のMakefileでは簡単なことだと思いますが、誰かがこれを修正するのを手伝ってくれますか?

メイクファイル:

CC        := g++-4.8
CFLAGS    := -g -Wall

SRCS      := myprogram.cc
OBJS      := ${SRCS:.cc=.o}
TARGET    := ${SRCS:.cc=}

default: all

all: $(OBJS)
    $(CC) $(CFLAGS) -o $(TARGET) $(OBJS)

バージョン情報は次のとおりです。

$ g++ --version
i686-apple-darwin10-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Copyright (C) 2007 Free Software Foundation, Inc.

$ g++-4.8 --version
g++-4.8 (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
4

2 に答える 2

3

makeのデフォルト ルールを使用してオブジェクト ファイルを作成しています。ソース ファイルは C++ であるため (拡張子で示されているように)、リンク ステップで使用しているおよび変数に加えておよび変数.ccをオーバーライドする必要があります。これらのような何かがそれを行う必要があります:CXXCXXFLAGSCCCFLAGS

CXX := $(CC)
CXXFLAGS := $(CFLAGS)
于 2013-10-08T17:58:34.217 に答える