3

我已经在我的 Mac (Snow Leopard) 上安装了 gcc,所以我可以为 AVR 微控制器编译。但是,它似乎阻止了我为其他任何东西进行编译。我想从 astrometry.net 构建软件包,当我运行 ./configure 时,我得到以下信息:

make -C ./qfits-an stage CFLAGS=" -g -Wall -ffinite-math-only -fno-signaling-nans  -march=native -O3 -fomit-frame-pointer -DNDEBUG -fPIC -Winline -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE" LDFLAGS=" -g -Wall -ffinite-math-only -fno-signaling-nans  -march=native -O3 -fomit-frame-pointer -DNDEBUG -fPIC -Winline" CC="gcc"
make -C src stage
gcc -g -Wall -ffinite-math-only -fno-signaling-nans  -march=native -O3 -fomit-frame-pointer -DNDEBUG -fPIC -Winline -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE   -c -o anqfits.o anqfits.c
gcc: error trying to exec 'cc1': execvp: No such file or directory    

gcc -v 给出:

Using built-in specs.
Target: avr
Configured with: ./configure --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --prefix=/usr/local/staging.avr-gcc
Thread model: single
gcc version 4.1.1

我不知道如何进行!似乎目前一切都设置为只为 AVR 平台构建,但我安装了 Xcode,所以在某个地方有更多版本的 gcc 潜伏着。此安装是通过http://www.micahcarrick.com/installing-gnu-tools-avr-gcc.html进行的,如果这有助于了解它是如何设置的(我在此之前安装了 Xcode)。

我希望解决方案很简单。我只是想避免弄乱我的设置,然后无法为任何一个平台编译。

非常感谢!

4

1 回答 1

3

您可能希望删除已安装的 AVR 工具的非交叉编译器命名版本(即gccld等),因此交叉编译器和相关工具只能使用特定于目标的名称。

为此,请找到它们的安装目录(/usr/local/bin?)并找到同时安装的所有工具。例如,这就是在我的 Linux 机器上发生的事情(给你一个想法):

$ which gcc
/usr/bin/gcc
$ cd /usr/bin
$ ls -li *gcc*
189389 -rwxr-xr-x 2 root root 268088 Dec  6  2011 gcc
195145 -rwxr-xr-x 1 root root   2018 Aug 16  2010 gccmakedep
189389 -rwxr-xr-x 2 root root 268088 Dec  6  2011 x86_64-redhat-linux-gcc

然后我将删除gccx86_64-redhat-linux-gcc作为启动该编译器的唯一方法(它们是硬链接的,因为它们共享相同的 inode)。还有其他工具,您可以在同一目录中按日期识别。

另一种方法是将交叉编译器安装到不在您的$PATH.

于 2012-06-29T09:50:26.023 回答