开发者

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜