Giter Club home page Giter Club logo

Comments (15)

EndrII avatar EndrII commented on June 10, 2024 2

@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.

sonphambk avatar sonphambk commented on June 10, 2024 1

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.

sonphambk avatar sonphambk commented on June 10, 2024 1

@EndrII

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.

sonphambk avatar sonphambk commented on June 10, 2024

Thank you for quick response
This is my log file
valgrindVetbose.log

from cqtdeployer.

sonphambk avatar sonphambk commented on June 10, 2024

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.

EndrII avatar EndrII commented on June 10, 2024

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.

EndrII avatar EndrII commented on June 10, 2024

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.

sonphambk avatar sonphambk commented on June 10, 2024

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.

EndrII avatar EndrII commented on June 10, 2024

@sonphambk please attach verbose deploy log to this issue. (from bitbucket pipeline)

from cqtdeployer.

sonphambk avatar sonphambk commented on June 10, 2024

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.

EndrII avatar EndrII commented on June 10, 2024

@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.

sonphambk avatar sonphambk commented on June 10, 2024

@EndrII After removing libDir option, it still doesn't work
I used gdb to debug and seem the error from Qt lib
image

from cqtdeployer.

sonphambk avatar sonphambk commented on June 10, 2024

This is cpu on bitbucket pipeline
image
And this is my cpu
image

from cqtdeployer.

EndrII avatar EndrII commented on June 10, 2024

@EndrII After removing libDir option, it still doesn't work I used gdb to debug and seem the error from Qt lib image

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.