From: Jacob F. <ja...@gm...> - 2006-11-10 23:21:18
|
I was hoping someone could lend me a hand w/ some questions on Boost. First, should I use the patched or unpatched version of Boost with my application? I would just as soon have a single flavor of Boost on my system rather than 2. So it's no problem to use the adobe/third_party one. But, I am also curious if it would cause problems for someone to use the unpatched Boost distribution at the same time as using ASL. Second, assuming there are no objections to using the adobe/third_party flavor of Boost, I have a linking question. On my system (XP, VC80), for example, ASL builds the debug filesystem lib named as follows: boost_filesystem-vc80-mt-d-1_33.lib However, including boost/filesystem in my own application triggers an auto_link w/ the following: libboost_filesystem-vc80-mt-sgd-1_33_1.lib I do not understand where the discrepancies in naming come from. Apparently, the Adobe built lib is intended to be used as a dynamical lib, but I do not see a corresponding DLL. Also, why would the versions differ? Thanks! Jacob ps Nice work on the latest ASL release! AFAICT, It downloaded and built w/out a hitch! |
From: Sean P. <sp...@ad...> - 2006-11-11 00:10:59
|
On Nov 10, 2006, at 3:21 PM, Jacob Foshee wrote: > I was hoping someone could lend me a hand w/ some questions on Boost. > > First, should I use the patched or unpatched version of Boost with > my application? I would just as soon have a single flavor of Boost > on my system rather than 2. So it's no problem to use the adobe/ > third_party one. But, I am also curious if it would cause problems > for someone to use the unpatched Boost distribution at the same > time as using ASL. Shouldn't be much of a problem - info on the patches are here: <http://opensource.adobe.com/wiki/index.php/About_Boost_Patches> > > Second, assuming there are no objections to using the adobe/ > third_party flavor of Boost, I have a linking question. On my > system (XP, VC80), for example, ASL builds the debug filesystem lib > named as follows: > boost_filesystem-vc80-mt-d-1_33.lib > However, including boost/filesystem in my own application triggers > an auto_link w/ the following: > libboost_filesystem-vc80-mt-sgd-1_33_1.lib Hmm - Mat or Foster might be able to answer that one. Sean |
From: Foster T. B. <fbr...@ad...> - 2006-11-11 01:08:46
|
Hi Jacob, On 11/10/06 4:09 p, "Sean Parent" <sp...@ad...> wrote: >> Second, assuming there are no objections to using the adobe/third_party >> flavor=20 >> of Boost, I have a linking question. On my system (XP, VC80), for examp= le, >> ASL builds the debug filesystem lib named as follows: >> boost_filesystem-vc80-mt-d-1_33.lib >> However, including boost/filesystem in my own application triggers an >> auto_link w/ the following: >> libboost_filesystem-vc80-mt-sgd-1_33_1.lib >>=20 >> I do not understand where the discrepancies in naming come from. Appare= ntly, >> the Adobe built lib is intended to be used as a dynamical lib, but I do = not >> see a corresponding DLL. Also, why would the versions differ? > Hmm - Mat or Foster might be able to answer that one. > Sean There are several issues at play here: - When compiled with MSVC the Boost libraries will automatically attemp= t to link in the built boost library they deem most appropriate based on the build settings of your application. This 'feature' is the cause of many headaches as many people do not figure C++ code would affect the dependency listings sent to the linker, but there you have it. In order to turn this off, #define BOOST_ALL_NO_LIB=3D1 in your build settings (which we do when building ASL). - The alphabet soup at the end of the a boost library artifact is intended to describe the settings under which said library was built. When building using bjam the tags are derived from a procedure called 'rename' i= n stage.jam, which is found in boost/tools/build/v2/tools/stage.jam. When the linker is given its auto-link instruction from the boost C++ sources, the library name is derived within boost/config/auto_link.hpp. In the former case bjam attributes (e.g., <link>static) are used to derive the name, whereas in the latter case the build environment is used. In all likelihood what is arising is that the built libraries are named according to the bjam rules, but because we set so many flags and preprocessor defines manually (not via bjam attributes) the auto_link code is deriving a separate set of decorations for the name of the library. All that to say that this could be our bug, in that we should be using the proper bjamese to get the build settings right, in which case the bjam library artifacts would match the names as they are derived by auto_link.hpp. However, I am also under the understanding that bjam does 'reverse lookup' on the build environment, and is capable of deriving all the necessary bjam attributes based on it. I could be wrong there, or I could be right but the functionality is not attached to the library tagging mechanism. So, in short, the bug could be very difficult to resolve if you would like to continue using automatic linking (which we do not recommend). If you do happen to come across the right fix (and it belongs in ASL), we'll gladly patch our distro and give you all the credit. Our recommendation would be to #define BOOST_ALL_NO_LIB=3D1 and specify the libraries to which you would like to link explicitly. It would seem bjam jibes with such a process, as we have been building ASL this way for many releases. Blessings, Foster --=20 Foster T. Brereton <=E1=BC=B0=CF=87=CE=B8=CF=8D=CF=82>< Romans 3:= 21-26 A d o b e S o f t w a r e T e c h n o l o g y L a b "What 99 percent of programmers need to know is not how to build components but how to use them." -- Alexander Stepanov "Now we have very simple code and the meaning is perfectly clear. Drink the Kool-Aid" -- Sean Parent |
From: Jacob F. <ja...@gm...> - 2006-11-13 19:51:14
|
VGhhbmtzIGZvciB0aGUgdmVyeSBoZWxwZnVsIHJlc3BvbnNlLiAgVGhhdCBkb2VzIHNvbHZlIG15 IHByb2JsZW0uICBEZXNwaXRlCnRoZSBpbnRlcmVzdGluZyBhdXRvX2xpbmsgZmVhdHVyZSwgaXQg bG9va3MgbGlrZSBpdCB3aWxsIGJlIGJldHRlciBmb3IgbWUgdG8KdXNlIEJPT1NUX0FMTF9OT19M SUIgYXMgd2VsbC4KCkknbSBhZnJhaWQgSSBkb24ndCBzcGVhayBiamFtZXNlIGF0IGFsbCB5ZXQs IHNvIGl0IG1heSBiZSBhIHdoaWxlIGJlZm9yZSBJCmZpeCBhbnkgYnVncyB0aGVyZS4gIDstKQoK VGhhbmtzLCBhZ2FpbiEKSmFjb2IKCk9uIDExLzEwLzA2LCBGb3N0ZXIgVC4gQnJlcmV0b24gPGZi cmVyZXRvQGFkb2JlLmNvbT4gd3JvdGU6Cj4KPiBIaSBKYWNvYiwKPgo+IE9uIDExLzEwLzA2IDQ6 MDkgcCwgIlNlYW4gUGFyZW50IiA8c3BhcmVudEBhZG9iZS5jb20+IHdyb3RlOgo+Cj4gPj4gU2Vj b25kLCBhc3N1bWluZyB0aGVyZSBhcmUgbm8gb2JqZWN0aW9ucyB0byB1c2luZyB0aGUgYWRvYmUv dGhpcmRfcGFydHkKPiA+PiBmbGF2b3IKPiA+PiBvZiBCb29zdCwgSSBoYXZlIGEgbGlua2luZyBx dWVzdGlvbi4gIE9uIG15IHN5c3RlbSAoWFAsIFZDODApLCBmb3IKPiBleGFtcGxlLAo+ID4+IEFT TCBidWlsZHMgdGhlIGRlYnVnIGZpbGVzeXN0ZW0gbGliIG5hbWVkIGFzIGZvbGxvd3M6Cj4gPj4g Ym9vc3RfZmlsZXN5c3RlbS12YzgwLW10LWQtMV8zMy5saWIKPiA+PiBIb3dldmVyLCBpbmNsdWRp bmcgYm9vc3QvZmlsZXN5c3RlbSBpbiBteSBvd24gYXBwbGljYXRpb24gdHJpZ2dlcnMgYW4KPiA+ PiBhdXRvX2xpbmsgdy8gdGhlIGZvbGxvd2luZzoKPiA+PiBsaWJib29zdF9maWxlc3lzdGVtLXZj ODAtbXQtc2dkLTFfMzNfMS5saWIKPiA+Pgo+ID4+IEkgZG8gbm90IHVuZGVyc3RhbmQgd2hlcmUg dGhlIGRpc2NyZXBhbmNpZXMgaW4gbmFtaW5nIGNvbWUKPiBmcm9tLiAgQXBwYXJlbnRseSwKPiA+ PiB0aGUgQWRvYmUgYnVpbHQgbGliIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSBkeW5hbWlj YWwgbGliLCBidXQgSSBkbwo+IG5vdAo+ID4+IHNlZSBhIGNvcnJlc3BvbmRpbmcgRExMLiAgQWxz bywgd2h5IHdvdWxkIHRoZSB2ZXJzaW9ucyBkaWZmZXI/Cj4gPiBIbW0gLSBNYXQgb3IgRm9zdGVy IG1pZ2h0IGJlIGFibGUgdG8gYW5zd2VyIHRoYXQgb25lLgo+ID4gU2Vhbgo+Cj4gVGhlcmUgYXJl IHNldmVyYWwgaXNzdWVzIGF0IHBsYXkgaGVyZToKPiAgICAgLSBXaGVuIGNvbXBpbGVkIHdpdGgg TVNWQyB0aGUgQm9vc3QgbGlicmFyaWVzIHdpbGwgYXV0b21hdGljYWxseQo+IGF0dGVtcHQKPiB0 byBsaW5rIGluIHRoZSBidWlsdCBib29zdCBsaWJyYXJ5IHRoZXkgZGVlbSBtb3N0IGFwcHJvcHJp YXRlIGJhc2VkIG9uIHRoZQo+IGJ1aWxkIHNldHRpbmdzIG9mIHlvdXIgYXBwbGljYXRpb24uIFRo aXMgJ2ZlYXR1cmUnIGlzIHRoZSBjYXVzZSBvZiBtYW55Cj4gaGVhZGFjaGVzIGFzIG1hbnkgcGVv cGxlIGRvIG5vdCBmaWd1cmUgQysrIGNvZGUgd291bGQgYWZmZWN0IHRoZQo+IGRlcGVuZGVuY3kK PiBsaXN0aW5ncyBzZW50IHRvIHRoZSBsaW5rZXIsIGJ1dCB0aGVyZSB5b3UgaGF2ZSBpdC4gSW4g b3JkZXIgdG8gdHVybiB0aGlzCj4gb2ZmLCAjZGVmaW5lIEJPT1NUX0FMTF9OT19MSUI9MSBpbiB5 b3VyIGJ1aWxkIHNldHRpbmdzICh3aGljaCB3ZSBkbyB3aGVuCj4gYnVpbGRpbmcgQVNMKS4KPiAg ICAgLSBUaGUgYWxwaGFiZXQgc291cCBhdCB0aGUgZW5kIG9mIHRoZSBhIGJvb3N0IGxpYnJhcnkg YXJ0aWZhY3QgaXMKPiBpbnRlbmRlZCB0byBkZXNjcmliZSB0aGUgc2V0dGluZ3MgdW5kZXIgd2hp Y2ggc2FpZCBsaWJyYXJ5IHdhcyBidWlsdC4gV2hlbgo+IGJ1aWxkaW5nIHVzaW5nIGJqYW0gdGhl IHRhZ3MgYXJlIGRlcml2ZWQgZnJvbSBhIHByb2NlZHVyZSBjYWxsZWQgJ3JlbmFtZScKPiBpbgo+ IHN0YWdlLmphbSwgd2hpY2ggaXMgZm91bmQgaW4gYm9vc3QvdG9vbHMvYnVpbGQvdjIvdG9vbHMv c3RhZ2UuamFtLiBXaGVuCj4gdGhlCj4gbGlua2VyIGlzIGdpdmVuIGl0cyBhdXRvLWxpbmsgaW5z dHJ1Y3Rpb24gZnJvbSB0aGUgYm9vc3QgQysrIHNvdXJjZXMsIHRoZQo+IGxpYnJhcnkgbmFtZSBp cyBkZXJpdmVkIHdpdGhpbiBib29zdC9jb25maWcvYXV0b19saW5rLmhwcC4gSW4gdGhlIGZvcm1l cgo+IGNhc2UgYmphbSBhdHRyaWJ1dGVzIChlLmcuLCA8bGluaz5zdGF0aWMpIGFyZSB1c2VkIHRv IGRlcml2ZSB0aGUgbmFtZSwKPiB3aGVyZWFzIGluIHRoZSBsYXR0ZXIgY2FzZSB0aGUgYnVpbGQg ZW52aXJvbm1lbnQgaXMgdXNlZC4gSW4gYWxsCj4gbGlrZWxpaG9vZAo+IHdoYXQgaXMgYXJpc2lu ZyBpcyB0aGF0IHRoZSBidWlsdCBsaWJyYXJpZXMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUK PiBiamFtCj4gcnVsZXMsIGJ1dCBiZWNhdXNlIHdlIHNldCBzbyBtYW55IGZsYWdzIGFuZCBwcmVw cm9jZXNzb3IgZGVmaW5lcyBtYW51YWxseQo+IChub3QgdmlhIGJqYW0gYXR0cmlidXRlcykgdGhl IGF1dG9fbGluayBjb2RlIGlzIGRlcml2aW5nIGEgc2VwYXJhdGUgc2V0IG9mCj4gZGVjb3JhdGlv bnMgZm9yIHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5Lgo+Cj4gQWxsIHRoYXQgdG8gc2F5IHRoYXQg dGhpcyBjb3VsZCBiZSBvdXIgYnVnLCBpbiB0aGF0IHdlIHNob3VsZCBiZSB1c2luZyB0aGUKPiBw cm9wZXIgYmphbWVzZSB0byBnZXQgdGhlIGJ1aWxkIHNldHRpbmdzIHJpZ2h0LCBpbiB3aGljaCBj YXNlIHRoZSBiamFtCj4gbGlicmFyeSBhcnRpZmFjdHMgd291bGQgbWF0Y2ggdGhlIG5hbWVzIGFz IHRoZXkgYXJlIGRlcml2ZWQgYnkKPiBhdXRvX2xpbmsuaHBwLiBIb3dldmVyLCBJIGFtIGFsc28g dW5kZXIgdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBiamFtIGRvZXMKPiAncmV2ZXJzZSBsb29rdXAn IG9uIHRoZSBidWlsZCBlbnZpcm9ubWVudCwgYW5kIGlzIGNhcGFibGUgb2YgZGVyaXZpbmcgYWxs Cj4gdGhlIG5lY2Vzc2FyeSBiamFtIGF0dHJpYnV0ZXMgYmFzZWQgb24gaXQuIEkgY291bGQgYmUg d3JvbmcgdGhlcmUsIG9yIEkKPiBjb3VsZCBiZSByaWdodCBidXQgdGhlIGZ1bmN0aW9uYWxpdHkg aXMgbm90IGF0dGFjaGVkIHRvIHRoZSBsaWJyYXJ5Cj4gdGFnZ2luZwo+IG1lY2hhbmlzbS4KPgo+ IFNvLCBpbiBzaG9ydCwgdGhlIGJ1ZyBjb3VsZCBiZSB2ZXJ5IGRpZmZpY3VsdCB0byByZXNvbHZl IGlmIHlvdSB3b3VsZCBsaWtlCj4gdG8gY29udGludWUgdXNpbmcgYXV0b21hdGljIGxpbmtpbmcg KHdoaWNoIHdlIGRvIG5vdCByZWNvbW1lbmQpLiBJZiB5b3UgZG8KPiBoYXBwZW4gdG8gY29tZSBh Y3Jvc3MgdGhlIHJpZ2h0IGZpeCAoYW5kIGl0IGJlbG9uZ3MgaW4gQVNMKSwgd2UnbGwgZ2xhZGx5 Cj4gcGF0Y2ggb3VyIGRpc3RybyBhbmQgZ2l2ZSB5b3UgYWxsIHRoZSBjcmVkaXQuCj4KPiBPdXIg cmVjb21tZW5kYXRpb24gd291bGQgYmUgdG8gI2RlZmluZSBCT09TVF9BTExfTk9fTElCPTEgYW5k IHNwZWNpZnkgdGhlCj4gbGlicmFyaWVzIHRvIHdoaWNoIHlvdSB3b3VsZCBsaWtlIHRvIGxpbmsg ZXhwbGljaXRseS4gSXQgd291bGQgc2VlbSBiamFtCj4gamliZXMgd2l0aCBzdWNoIGEgcHJvY2Vz cywgYXMgd2UgaGF2ZSBiZWVuIGJ1aWxkaW5nIEFTTCB0aGlzIHdheSBmb3IgbWFueQo+IHJlbGVh c2VzLgo+Cj4gQmxlc3NpbmdzLAo+IEZvc3Rlcgo+Cj4KPiAtLQo+IEZvc3RlciBULiBCcmVyZXRv biAgICAgICAgICAgICAgICAgIDzhvLDPh864z43Pgj48ICAgICAgICAgICAgICAgIFJvbWFucyAz OjIxLTI2Cj4gQSBkIG8gYiBlICAgUyBvIGYgdCB3IGEgciBlICAgVCBlIGMgaCBuIG8gbCBvIGcg eSAgIEwgYSBiCj4gIldoYXQgOTkgcGVyY2VudCBvZiBwcm9ncmFtbWVycyBuZWVkIHRvIGtub3cg aXMgbm90IGhvdyB0byBidWlsZAo+IGNvbXBvbmVudHMKPiBidXQgaG93IHRvIHVzZSB0aGVtLiIg LS0gQWxleGFuZGVyIFN0ZXBhbm92Cj4gIk5vdyB3ZSBoYXZlIHZlcnkgc2ltcGxlIGNvZGUgYW5k IHRoZSBtZWFuaW5nIGlzIHBlcmZlY3RseSBjbGVhci4gRHJpbmsKPiB0aGUKPiBLb29sLUFpZCIg LS0gU2VhbiBQYXJlbnQKPgo+Cg== |