Comments (15)
@sonphambk Hm, probably issue with system libs...
run your app with valgrind verbose options and send me output to analyze.
sudo apt install valgrind
Change the start script of your installed distribution
"$BASE_DIR/bin/yourAppExecutable" "$@"
to
valgrind --verbose --log-file="$BASE_DIR/valgrindVetbose.log" "$BASE_DIR/bin/yourAppExecutable" "$@"
from cqtdeployer.
This is my command:
cqtdeployer qif -bin ./robomap_desktop -targetDir /home/user/deploy -verbose 3 -libDir /usr/local/lib,/opt/Qt/6.5.2/gcc_64/lib,/usr/lib/x86_64-linux-gnu,/usr/lib/x86_64-linux-gnu/lapack,/usr/lib/ -platform linux_x86_64 -qmake /opt/Qt/6.5.2/gcc_64/bin/qmake -icon ./appIcon.png -extraLibs boost
but it doesn't work
from cqtdeployer.
What is Pose Graph Editor ?
This is my own class inherited from QOpenGLWidget.
You mean I should add Qt's lib to extraLibs option instead of add them to libDir
from cqtdeployer.
Thank you for quick response
This is my log file
valgrindVetbose.log
from cqtdeployer.
My wonder is that when I built source and make deploy in docker container ubuntu 22 and then installed run file, it worked fine
from cqtdeployer.
Not sure, but probably you have a deficient version of the boost libraries.
==16820== Process terminating with default action of signal 4 (SIGILL): dumping core
==16820== Illegal opcode at address 0x1ABA98
==16820== at 0x1ABA98: boost::io::basic_altstringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x9B1788A: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==16820== by 0x9B09B64: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==16820== by 0x1B7E6F: void boost::io::detail::put<char, std::char_traits<char>, std::allocator<char>, boost::io::detail::put_holder<char, std::char_traits<char> > const&>(boost::io::detail::put_holder<char, std::char_traits<char> > const&, boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::string_type&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::internal_streambuf_t&, std::locale*) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x1B8ACF: void boost::io::detail::distribute<char, std::char_traits<char>, std::allocator<char>, boost::io::detail::put_holder<char, std::char_traits<char> > const&>(boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&, boost::io::detail::put_holder<char, std::char_traits<char> > const&) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x23B71A: boost::basic_format<char, std::char_traits<char>, std::allocator<char> >& boost::io::detail::feed_impl<char, std::char_traits<char>, std::allocator<char>, boost::io::detail::put_holder<char, std::char_traits<char> > const&>(boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&, boost::io::detail::put_holder<char, std::char_traits<char> > const&) [clone .constprop.0] (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x23C0A5: hdl_graph_slam::InteractiveGraph::load_keyframes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ProgressDialog*) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x24310A: QtConcurrent::RunFunctionTaskBase<bool>::run() (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x606320B: ??? (in /opt/Qt/6.5.2/gcc_64/lib/libQt6Core.so.6.5.2)
==16820== by 0x605E28E: ??? (in /opt/Qt/6.5.2/gcc_64/lib/libQt6Core.so.6.5.2)
==16820== by 0x9DE0AC2: start_thread (pthread_create.c:442)
==16820== by 0x9E71BF3: clone (clone.S:100)
Try to deploy your "boosts" libs with your distribution
use the -extraLibs option
cqteployer ... -extraLibs boost
from cqtdeployer.
I think issue on your deployment command.
You are added to deploy all libs of your usr/lib dir. This Dir contains all libraries of your OS Distribution. But not all libraries has computability with another OS systems. So, just remove the /usr/local/lib, /usr/lib/x86_64-linux-gnu, /usr/lib from your libDir option.
If some libs do not add into your distribution after remove these paths, just add mask of name these libs into extraLib option.
Different between extraLib and libDir:
- libDir mark all libraries inner of the path as an allowed to deploy in the depth from the recursiveDepth option
- extraLib mark as allowed to deploy all libraries from the all paths (your PATH variable) that match names from the option arguments.
cqtdeployer qif -bin ./robomap_desktop -targetDir /home/user/deploy -verbose 3 -libDir /usr/lib/x86_64-linux-gnu/lapack -platform linux_x86_64 -qmake /opt/Qt/6.5.2/gcc_64/bin/qmake -icon ./appIcon.png -extraLibs boost
from cqtdeployer.
Thank you for your info
I tried but it still failed. I tried to deploy in docker container and copied from container to another host (ubuntu 22) and it worked fine.
However, the deployed file from bitbucket pipeline didn't work.
The deployed file from pipeline saved in Download of repo
from cqtdeployer.
@sonphambk please attach verbose deploy log to this issue. (from bitbucket pipeline)
from cqtdeployer.
Hi @EndrII
This is my log
pipelineLog-{98068883-b28c-4144-a8f3-a014cbe52f03}.txt
And this is the log file from docker container:
deploy.log
I didn't see any different thing from both.
from cqtdeployer.
@sonphambk I check your log,
I see that you use the libDir option, please disable it,
Verbose log: Option[libDir]: /usr/local/lib,/opt/Qt/6.5.2/gcc_64/lib,/usr/lib/x86_64-linux-gnu,/usr/lib/
Because cqtdeployer deploy unwanted libraries like :
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/librt.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libdbus-1.so.3
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libsystemd.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libcap.so.2
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libzstd.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/liblz4.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/liblzma.so.5
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libgcrypt.so.20
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libgpg-error.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libGL.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libGLX.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libX11.so.6
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libxcb.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libXau.so.6
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libbsd.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libmd.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libEGL.so.1
All these libs are system, and should distribute in your OS only. If you need some libraries, use the ExtraLibs option.
from cqtdeployer.
@EndrII After removing libDir option, it still doesn't work
I used gdb to debug and seem the error from Qt lib
from cqtdeployer.
This is cpu on bitbucket pipeline
And this is my cpu
from cqtdeployer.
@EndrII After removing libDir option, it still doesn't work I used gdb to debug and seem the error from Qt lib
What is Pose Graph Editor ? Looks as you forget to add this library into distribution
- if it is separately library, add it to extraLibs option
- if it is separately plugin, add to extraDepends full lib name.
cqtdeploy deploy all known dependencies except system libs. Because system libs more likely are not backward compatible between major versions
Using libDir option you are forced to deploy all system libs into your Distribution kit, more likely it was broken your app.
from cqtdeployer.
Related Issues (20)
- Drop name validation for qmake option.
- How to uninstall CQtDeployer in linux? HOT 2
- Cant run deployed sh :"/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found" HOT 2
- How to install CQtDeployer in docker ubuntu 20 HOT 6
- libxcb-xinerama not found HOT 8
- Qt 6.6 support HOT 1
- The link in docs shows wrong page that doesn't exist HOT 2
- Подскажите а как завернуть в qif подготовленную CQtDeployer директорию HOT 2
- Cmake support HOT 3
- Refactoring qmake option HOT 1
- Deployment on Fedora 39 HOT 17
- Copy extraData to multiple directories HOT 2
- QIF banner/logo on cross-compiled app (Linux->Windows) HOT 9
- error while loading shared libraries: libb2.so.1 HOT 5
- xcb-cursor0, libxcb-cursor0 & QtMultimedia support HOT 3
- platform integration problem HOT 10
- Deploy application with custom QML library/plugin HOT 2
- Implementation of copying multiple directories HOT 3
- Fail to read configuration - possible regression of #740 HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cqtdeployer.