Author Topic: Compiled programs on Linux problem (-no-pie switch) solved.  (Read 3695 times)

0 Members and 1 Guest are viewing this topic.

Offline Fifi

  • Forum Regular
  • Posts: 181
    • View Profile
    • My small QB64 contribution
Compiled programs on Linux problem (-no-pie switch) solved.
« on: September 20, 2018, 07:36:20 pm »
Hi all,

Thanx to the stack overflow links provided by dchr, I've been able to modifiy my multi tongues installation script in order to fix the problem encountered with Debian, elementary, Mint, Neon, Zorin and Ubuntu and all its derivatives (Kubuntu, Edubuntu, etc.) without changing its behavior for other distros such as ArchLinux, CentOS, Fedora, Mangaro, etc.

So now, despite the new setting of gcc and g++ on the last releases of the above mentioned distros, the executables created by QB64 can now be fired again with a double left mouse click, including of course QB64 itself as well as InForm and vWATCH.

You can download this last script release (r21) from my QB64, InForm and vWATCH dedicated page (www.as2,com).

I'm currently editing a video to show the interest and benefits using this script Vs. the obsolete (and sorry for that I don't want to be rude : restricted and a little bit buggy for newest distros) setup_lnx.sh as of 2013, April 4th from Matt Kilgore.

I then would appreciate your returns after making a try of this script that can display, accordingly to your desktop language setting, its messages in American English, French (of course), German, Russian and, thanx to Fellippe Heitor in Portuguese.

I'm also looking for help to translate the small message list (less than 80 sentences) in other languages such as Italian, Spanish, Dutch as well as any other proposal.

Cheers.
Fifi
It's better to look like an idiot for a short time while asking something obvious to an expert than pretending to be smart all your life. (C) Me.

Offline Fifi

  • Forum Regular
  • Posts: 181
    • View Profile
    • My small QB64 contribution
Re: Compiled programs on Linux problem (-no-pie switch) solved.
« Reply #1 on: September 21, 2018, 05:09:04 pm »
Hi again

Anyone to test my installation script and give me returns ?

If you're not familiar with Linux, I can provide pre-installed VM disks to be used with both VMware Player (free) and/or VirtualBox.

Please let me know if I can help.

Cheers.
It's better to look like an idiot for a short time while asking something obvious to an expert than pretending to be smart all your life. (C) Me.

Offline William33

  • Newbie
  • Posts: 5
    • View Profile
Re: Compiled programs on Linux problem (-no-pie switch) solved.
« Reply #2 on: March 23, 2019, 06:02:14 am »
Hi Fifi,

I am new on the forum and this is actually my first post. I want to thank you for your script, it works great. Finally I've got "real" binaries on Linux Mint again.

P.S. If desired, I can help improving the German translation because not everything is correct (no offense).
Kind Regards,
William

Offline johnno56

  • Forum Resident
  • Posts: 1270
  • Live long and prosper.
    • View Profile
Re: Compiled programs on Linux problem (-no-pie switch) solved.
« Reply #3 on: March 23, 2019, 06:38:41 am »
William33,

A fellow Mint user! Excellent! - Oh, welcome to The Forum...

J
Logic is the beginning of wisdom.

Offline jonza

  • Newbie
  • Posts: 5
    • View Profile
Re: Compiled programs on Linux problem (-no-pie switch) solved.
« Reply #4 on: March 27, 2019, 09:21:00 am »
I used your installer, but still have the same problem.

C++ Compilation failed check....

/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:27:20: note: previous declaration of ‘uint64_t’ was here
 typedef __uint64_t uint64_t;
                    ^~~~~~~~
In file included from ../../src/minimp3.c:24:0:
../../src/libc.h:58:37: error: conflicting types for ‘int64_t’
         typedef   signed long long  int64_t;
                                     ^~~~~~~
In file included from /usr/include/stdint.h:34:0,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:9,
                 from ../../src/libc.h:26,
                 from ../../src/minimp3.c:24:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:27:19: note: previous declaration of ‘int64_t’ was here
 typedef __int64_t int64_t;
/opt/qb64/internal/temp/compilelog.txt/x86_64-linux-gnu/bits/stdint-intn.h:27:19: note: previous declaration of ‘int64_t’ was here
 typedef __int64_t int64_t;
/opt/qb64/internal/temp/compilelog.txt/x86_64-linux-gnu/bits/stdint-intn.h:27:19: note: previous declaration of ‘int64_t’ was here
 typedef __int64_t int64_t;
                   ^~~~~~~
ar: temp/minimp3.o: No such file or directory
:

Offline jonza

  • Newbie
  • Posts: 5
    • View Profile
Re: Compiled programs on Linux problem (-no-pie switch) solved.
« Reply #5 on: March 27, 2019, 09:51:29 am »
If I comment out everything sound related it works. Regular installation starts to nag about fonts after that. I also tried the dev build. Same coode works perfectly in Windows.

Might not be a dependency problem, but I have at least  libasound2, -data, -dev, -plugins ; freeglut3-dev ; libglew-dev ; libglm-dev ; libsdl1.2-dev; libsdl-image1.2-dev; libsdl-mixer1.2-dev; libsdl-net1.2-dev; libsdl-ttf2.0-dev

Any other dependencies I don't know about?

Offline SMcNeill

  • QB64 Developer
  • Forum Resident
  • Posts: 3972
    • View Profile
    • Steve’s QB64 Archive Forum
Re: Compiled programs on Linux problem (-no-pie switch) solved.
« Reply #6 on: March 27, 2019, 10:36:59 am »
Looks like all the glitches are just from a repeated typedef in multiple modules.

I’m not on Linux, but you can try opening the indicated file and commenting out those lines, and see if that solves the issue when you try the build.
https://github.com/SteveMcNeill/Steve64 — A github collection of all things Steve!

Offline jonza

  • Newbie
  • Posts: 5
    • View Profile
Re: Compiled programs on Linux problem (-no-pie switch) solved.
« Reply #7 on: March 28, 2019, 05:46:19 am »
Found a solution here:
https://www.qb64.org/forum/index.php?PHPSESSID=890c711e474b65cf86cca857cbc6ddbb&topic=326.msg2174#msg2174

Change lines 57 & 58 to:
typedef __uint64_t uint64_t;
typedef __int64_t int64_t;

Edit: In file internal/c/parts/audio/decode/mp3_mini/src/libc.h
« Last Edit: March 28, 2019, 05:47:43 am by jonza »