Install h5py in Mac OS X 10.6.3
I'm trying to install h5py in Mac OS X 10.6.3.
First I installed HDF5 1.8, which used the following commands:
./configure \
--prefix=/Library/Frameworks/Python.framework/Versions/Current \
--enable-shared \
--enable-production \
--enable-threadsafe \
CPPFLAGS=-I/Library/Frameworks/Python.framework/Versions/Current/include \
LDFLAGS=-L/Library/Frameworks/Python.framework/Versions/Current/lib
make
make check
sudo make install
Then install h5py:
/Library/Frameworks/Python.framework/Versions/Current/bin/python \
setup.py \
build \
--api=18 \
--hdf5=/Library/Frameworks/Python.framework/Ve开发者_如何学运维rsions/Current
Then I got the errors:
******************************************
Configure: Autodetecting HDF5 settings...
Custom HDF5 dir: /Library/Frameworks/Python.framework/Versions/Current
Custom API level: (1, 8)
ld: warning: in detect/vers.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in /Library/Frameworks/Python.framework/Versions/Current/lib/libhdf5.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
"_main", referenced from:
start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Failed to compile HDF5 test program. Please check to make sure:
* You have a C compiler installed
* A development version of Python is installed (including header files)
* A development version of HDF5 is installed (including header files)
* If HDF5 is not in a default location, supply the argument --hdf5=<path>
******************************************
error: command 'cc' failed with exit status 1
I just updated my Xcode, I don't know whether this is because my gcc's default setting. If so, how can I get rid of this error?
Thanks.
I just came across a similar error while trying to build a Python extension module on Mac OS X with the Intel C/C++ compiler. To fix the "undefined symbols: _main" error I had to add the following to the linker command: -bundle -undefined dynamic_lookup
You can do a 'man ld' to find out what the specific linker commands do, but basically you are telling the linker not to worry about undefined symbols and to look them up dynamically when the library gets loaded.
If you use macports try: py26-h5py
精彩评论