[Scons-users] OSX Library link names include undesired prefix

edA-qa mort-ora-y eda-qa at disemia.com
Mon Aug 7 11:57:51 EDT 2017


The attached ZIP file contains a minimal project that shows the problem.
Just type `scons` to build. The output is `build/dohello` with library
`hello`

On Linux this works as intended.

On OSX this fails. Be sure to try and run `build/dohello` from somewhere
other than the directory where `build` resides (since it will work
there).   Run `otool -L build/dohello` to see that it's referencing
`build/libhello.dylib` instead of the desired `libhello.dylib`


On 07/08/17 14:36, Bill Deegan wrote:
> Can you make a simple test case which demonstrates the issue?
>
>
> On Sun, Aug 6, 2017 at 11:49 PM, edA-qa mort-ora-y <eda-qa at disemia.com
> <mailto:eda-qa at disemia.com>> wrote:
>
>     g++ -o build/libleaf_util.dylib -dynamiclib
>     build/util/dump_base.os build/util/file.os build/util/number.os
>     build/util/object_holder.os build/util/unicode.os
>     -Lbuild/build/lib -Lsrc/build/lib
>     -L/usr/local/Cellar/boost/1.63.0/lib -Lbuild -Lsrc
>     -L/Users/edA-qa/src-leaf/llvm/install/lib
>     -L/usr/local/Cellar/gmp/6.1.2/lib -lboost_unit_test_framework
>     -lboost_program_options -lboost_regex -lLLVM -lgmp -lgmpxx
>     -lboost_filesystem -lboost_system
>
>     g++ -o build/leaf build/bin/leaf.o build/bin/test_expecter.o
>     -Lbuild/build/lib -Lsrc/build/lib
>     -L/usr/local/Cellar/boost/1.63.0/lib -Lbuild -Lsrc
>     -L/Users/edA-qa/src-leaf/llvm/install/lib
>     -L/usr/local/Cellar/gmp/6.1.2/lib -lboost_unit_test_framework
>     -lboost_program_options -lboost_regex -lLLVM -lgmp -lgmpxx
>     -lboost_filesystem -lboost_system -lleaf_lang -lleaf_parser
>     -lleaf_util -lleaf_ir -lleaf_ir_llvm -lleaf_runner
>
>
>
>
>     On 07/08/17 00:05, Bill Deegan wrote:
>>     Can you post a gist of the build log?
>>     Specifically the link line for the shared library and for the
>>     program?
>>
>>     On Sun, Aug 6, 2017 at 12:55 PM, edA-qa mort-ora-y
>>     <eda-qa at disemia.com <mailto:eda-qa at disemia.com>> wrote:
>>
>>         After having getting my shared libraries working on Linux I'm
>>         trying now
>>         on OSX. The approach provided before does not do the correct
>>         thing on
>>         OSX. For example, instead of linking to `libleaf_util.dylib`,
>>         it links
>>         to `build/libleaf_util.dylib`.
>>
>>         Library created as:
>>
>>             lib_util_name = 'leaf_util'
>>             lib_util = env.SharedLibrary( lib_util_name, [
>>                 'util/dump_base.cpp',
>>                 'util/file.cpp',
>>                 'util/number.cpp',
>>                 'util/object_holder.cpp',
>>                 'util/unicode.cpp',
>>                 ] )
>>
>>         Then used as:
>>
>>         leaf = env.Program( 'leaf', [
>>             'bin/leaf.cpp',
>>             'bin/test_expecter.cpp',
>>             ],
>>             LIBS = env['LIBS'] + [ lib_lang_name, lib_parser_name,
>>         lib_util_name, lib_ir_name, lib_ir_llvm_name, lib_runner_name ],
>>             )
>>
>>
>>         Running `otool -L build/leaf` gives me:
>>
>>             build/libleaf_util.dylib (compatibility version 0.0.0,
>>         current
>>         version 0.0.0)
>>
>>
>>         Using the `otool -l` option also doesn't list any RPATH,
>>         though I have
>>         this configured:
>>
>>             env['RPATH'] = Literal('\\$$ORIGIN')
>>
>>
>>         Full SConscript file:
>>         https://gist.github.com/mortoray/0eff2a9a066ad48a6aedab8766503865
>>         <https://gist.github.com/mortoray/0eff2a9a066ad48a6aedab8766503865>
>>         Full wrapping SConstruct:
>>         https://gist.github.com/mortoray/0c7485fa04afb8f4db099132e7b1e723
>>         <https://gist.github.com/mortoray/0c7485fa04afb8f4db099132e7b1e723>
>>
>>         --
>>         edA-qa mort-ora-y
>>         http://mortoray.com/
>>
>>         Leaf - the language we always wanted
>>         http://leaflang.org/
>>
>>
>>         _______________________________________________
>>         Scons-users mailing list
>>         Scons-users at scons.org <mailto:Scons-users at scons.org>
>>         https://pairlist4.pair.net/mailman/listinfo/scons-users
>>         <https://pairlist4.pair.net/mailman/listinfo/scons-users>
>>
>>
>>
>>
>>     _______________________________________________
>>     Scons-users mailing list
>>     Scons-users at scons.org <mailto:Scons-users at scons.org>
>>     https://pairlist4.pair.net/mailman/listinfo/scons-users
>>     <https://pairlist4.pair.net/mailman/listinfo/scons-users>
>
>     -- 
>     edA-qa mort-ora-y 
>     http://mortoray.com/
>
>     Leaf - the language we always wanted
>     http://leaflang.org/
>
>     _______________________________________________ Scons-users
>     mailing list Scons-users at scons.org <mailto:Scons-users at scons.org>
>     https://pairlist4.pair.net/mailman/listinfo/scons-users
>     <https://pairlist4.pair.net/mailman/listinfo/scons-users> 
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users

-- 
edA-qa mort-ora-y 
http://mortoray.com/

Leaf - the language we always wanted
http://leaflang.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20170807/751afec4/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linktest.tgz
Type: application/x-compressed-tar
Size: 594 bytes
Desc: not available
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20170807/751afec4/attachment-0001.bin>


More information about the Scons-users mailing list