Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to compile ASL on OS X using GCC-MP-4.7?
    text
    copied!<p>I'm having all manner of trouble attempting to compile <a href="http://stlab.adobe.com/" rel="nofollow">Adobe Source Libraries (ASL)</a> on a Mac running Lion. I'm using MacPorts GCC-4.7 (I like C++11).</p> <p>I downloaded and edited the asl_1.0.43_net_setup.sh by changing the url to point to downloads.sourceforge.net.</p> <p>I told bjam to use my gcc and pass it the -std=c++11 flags by editing ~/user-config.jam:</p> <pre><code>import toolset : using ; using darwin ; using gcc : 47 : g++-mp-4.7 : &lt;cxxflags&gt;"-std=c++11" ; </code></pre> <p>I build with flags telling bjam to make a 64 bit version: bjam toolset=gcc-47 -j 4 address-model=64 architecture=x86</p> <p>I keep getting the error message (multiple times): documentation/examples/namespace.cpp:1:0: error: CPU you selected does not support x86-64 instruction set</p> <p>Even though I told it to use 64 bit, bjam (stupidly) appears to be setting -march=i486 and causing the above problem. Ideally, ASL could compile using my existing installed boost, and TBB without building custom versions.</p> <p>I've already spent a few hours so far and am about ready to chuck it. It seems to have so much promise, but the build system is inflexible (which is why I don't use jam or bjam).</p> <p>Does anyone have any hints on building this thing on a modern Mac using either clang or GCC? (GCC: not the version that comes with XCode).</p> <p>[edit] I found the i486 bit and removed that. Now I'm having trouble with what appears to be problems compiling with a C++11 compiler:</p> <pre><code>./adobe/closed_hash.hpp:691:88: error: 'insert' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] ./adobe/closed_hash.hpp:691:88: note: declarations in dependent base 'adobe::version_1::closed_hash_set&lt;adobe::pair&lt;adobe::version_1::name_t, adobe::version_1::any_regular_t&gt;, adobe::get_element&lt;0, adobe::pair&lt;adobe::version_1::name_t, adobe::version_1::any_regular_t&gt; &gt;, boost::hash&lt;adobe::version_1::name_t&gt;, std::equal_to&lt;adobe::version_1::name_t&gt;, adobe::version_1::capture_allocator&lt;adobe::pair&lt;adobe::version_1::name_t, adobe::version_1::any_regular_t&gt; &gt; &gt;' are not found by unqualified lookup ./adobe/closed_hash.hpp:691:88: note: use 'this-&gt;insert' instead </code></pre> <p>[edit] Hmm, that actually looks like a bug in the adobe code that g++ used to be permissive about, but no longer is. Sigh, now it just looks like that the ASL hasn't been compiled against any modern, (mostly) compliant C++11 compiler. </p> <p>Now I see compilation problems in the version of boost that the adobe script downloaded (signals library apparently has a bug in some move constructor and GCC is complaining it):</p> <pre><code>../boost_libraries/boost/smart_ptr/shared_ptr.hpp:168:25: note: 'boost::shared_ptr&lt;boost::signals::detail::basic_connection&gt;::shared_ptr(const boost::shared_ptr&lt;boost::signals::detail::basic_connection&gt;&amp;)' is implicitly declared as deleted because 'boost::shared_ptr&lt;boost::signals::detail::basic_connection&gt;' declares a move constructor or move assignment operator </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload