Re: [Boost-users] Something simple is wrong I am sure
Daniel Lord wrote:
So how can this be? The build was for Darwin and yet its the wrong
architecture?!?!?!
I don't understand the error messages frankly.
Me neither: but after a quick bit of Googling this appears to be a common problem if you mix "universal" and "non-universal" binaries. So my guess is
that the Boost libraries and your executable were built with different
architechture options: one universal one not. But I can't tell you which is
which ! :-)
Sure enough none of the libraries are universal binaries and only the
dynamic libraries are for the i386 architecture (see lipo output below). $lipo -detailed_info libboost_regex* input file libboost_regex-1_34_1.a is not a fat file input file libboost_regex-1_34_1.dylib is not a fat file input file libboost_regex-d-1_34_1.a is not a fat file input file libboost_regex-d-1_34_1.dylib is not a fat file input file libboost_regex-d.a is not a fat file input file libboost_regex-mt-1_34_1.a is not a fat file input file libboost_regex-mt-1_34_1.dylib is not a fat file input file libboost_regex-mt-d-1_34_1.a is not a fat file input file libboost_regex-mt-d-1_34_1.dylib is not a fat file input file libboost_regex-mt-d.a is not a fat file input file libboost_regex-mt.a is not a fat file input file libboost_regex.a is not a fat file Non-fat file: libboost_regex-1_34_1.a is architecture: ppc7400 Non-fat file: libboost_regex-1_34_1.dylib is architecture: i386 Non-fat file: libboost_regex-d-1_34_1.a is architecture: ppc7400 Non-fat file: libboost_regex-d-1_34_1.dylib is architecture: i386 Non-fat file: libboost_regex-d.a is architecture: ppc7400 Non-fat file: libboost_regex-mt-1_34_1.a is architecture: ppc7400 Non-fat file: libboost_regex-mt-1_34_1.dylib is architecture: i386 Non-fat file: libboost_regex-mt-d-1_34_1.a is architecture: ppc7400 Non-fat file: libboost_regex-mt-d-1_34_1.dylib is architecture: i386 Non-fat file: libboost_regex-mt-d.a is architecture: ppc7400 Non-fat file: libboost_regex-mt.a is architecture: ppc7400 Non-fat file: libboost_regex.a is architecture: ppc7400 I made the assumption that Boost would, as a default, build for the native architecture it was building one since most of the other libraries I use have been doing that for nearly 2 years. My mistake. It is building universal binaries that usually requiring customization of the build. But to build ppc on an intel platform--that was completely unexpected at this late date. Searching the Boost site for the key word "universal binaries" found nothing. Searching for "universal OS X" gave four generic uses of the word "universal" but nothing of help. Anybody have any experience building Boost as a universal library set? If not... It's been over a year since I had to hack a build so I need to refresh my memory. It my well be time to pour another cup of java, take the red pill, and see how deep the rabbiit hole goes.
participants (1)
-
Daniel Lord