我正在编译此处提供的库:http://www.robots.ox.ac.uk/~vgg/software/fastann/,但
bash-3.2$ PREFIX=/usr/local/ cmake . && make
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-Wall -O2 -g3 -msse2 -march=native -fno-exceptions -fno-rtti
--- Prefix = /usr/local/
-- Configuring done
-- Generating done
-- Build files have been written to: /path/to/dir
[ 14%] Building CXX object CMakeFiles/fastann.dir/dist_l2.cpp.o
/path/to/dir/dist_l2.cpp:1: error: bad value (native) for -march= switch
/path/to/dir/dist_l2.cpp:1: error: bad value (native) for -mtune= switch
make[2]: *** [CMakeFiles/fastann.dir/dist_l2.cpp.o] Error 1
make[1]: *** [CMakeFiles/fastann.dir/all] Error 2
make: *** [all] Error 2
bash-3.2$
这只是所提供指令的第一步,我不知道接下来要去哪里看。有人可以告诉我这个错误究竟是什么,以及如何解决它?
答案 0 :(得分:1)
切换到使用等于或大于4.2的gcc
版本。
gcc
的4.2版引入了native
游行。
使用
gcc --version
获取gcc
的版本信息。
答案 1 :(得分:1)
如何修复错误:-march = switch和-mtune = switch的错误值(本机)?
问题在于rake aborted!
cannot load such file -- bundler/setup
/var/lib/openshift/55bb37e82d5271756a00006c/app-root/runtime/repo/config/boot.rb:3:in `<top (required)>'
/var/lib/openshift/55bb37e82d5271756a00006c/app-root/runtime/repo/config/application.rb:1:in `<top (required)>'
/var/lib/openshift/55bb37e82d5271756a00006c/app-root/runtime/repo/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
。根据Ian Lance Taylor的GCC's mailing list(Ian是GCC开发者之一):
问题是驱动程序代码无法运行,而且错误是 gcc没有正确处理[
-march=nartive
]。 gcc中有一些代码 处理驱动程序代码失败,它适用于-march=native
,但是 不适用于-mtune=native
。驱动程序代码应该将
-march=native
更改为 你的CPU-march=native
。代码在-march=XXX
。
所以解决方法是避免使用gcc/config/i386/driver-i386.c
;并使用(1)-march=native
或-m32
,或(2)使用-m64
,其中-march=cpu-type
是GCC 3.17.15 Intel 386 and AMD x86-64 Options列出的其中一个手册。该列表非常广泛,包括cpu-type
,pentium
,pentium2
和pentium3
。