CerebusOSS/CereLink

Same testcbsdk binary uses different protocol depending on folder?

Closed this issue · 2 comments

Why is the installed one using protocol cb3.09 but the one in the ./dist/bin folder is using protocol cb3.10?

$ make install
[Snip]
-- Installing: /usr/local/bin/testcbsdk

$ /usr/local/bin/testcbsdk
Initializing Cerebus real-time interface 6.04.00.00 (protocol cb3.09)...
[Snip]

$ ../dist/bin/testcbsdk 
Initializing Cerebus real-time interface 6.04.00.00 (protocol cb3.10)...
[Snip]
$ ls -all ../dist/bin/testcbsdk
-rwxr-xr-x  1 chadwickboulay  staff  17548 Jun 22 15:32 ../dist/bin/testcbsdk
$ ls -all /usr/local/bin/testcbsdk
-rwxr-xr-x  1 chadwickboulay  admin  17548 Jun 22 15:32 /usr/local/bin/testcbsdk
$ otool -L /usr/local/bin/testcbsdk
/usr/local/bin/testcbsdk:
    @rpath/libcbsdk.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/opt/qt5/lib/QtXml.framework/Versions/5/QtXml (compatibility version 5.6.0, current version 5.6.1)
    /usr/local/opt/qt5/lib/QtConcurrent.framework/Versions/5/QtConcurrent (compatibility version 5.6.0, current version 5.6.1)
    /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.6.0, current version 5.6.1)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
$ otool -L ../dist/bin/testcbsdk
../dist/bin/testcbsdk:
    @rpath/libcbsdk.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/opt/qt5/lib/QtXml.framework/Versions/5/QtXml (compatibility version 5.6.0, current version 5.6.1)
    /usr/local/opt/qt5/lib/QtConcurrent.framework/Versions/5/QtConcurrent (compatibility version 5.6.0, current version 5.6.1)
    /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.6.0, current version 5.6.1)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)

I think this is dependent on rpath. If there is some relative path in rpath this could happen (like one with $ORIGIN). So you should look to see what rpath is set to

This seems to be solved after #66 . With #66, I seem to have snuck in a regression where it is now installing the libs to /usr/local/lib64 instead of /usr/local/lib, and (on my system at least) /usr/local/lib64 is not on the @rpath search list. I manually created a symlink and all is fine. I'll try to fix the install location separately.