Bei der Verwendung des Dateibrowsers PCManFM fällt in TinkerOS 2.0.8 (und auch in früheren Versionen) auf, dass ausführbare Programme nicht durch Doppelklick gestartet werden können. In anderen Linux-Distributionen ist dies in PCManFM möglich. Die Ursache des unterschiedlichen Verhaltens von PCManFM in TinkerOS ist unklar.
Allerdings besteht bei Verwendung der Programmiersprachen C, C++ und Ada die Möglichkeit, Programme mit der Option -no-pie zu binden und so doch Executables herzustellen die mit Doppelklick gestartet werden können.
Wenn eine oder mehrere Quelldateien mit einem einzigen Aufruf des Compilers gcc compiliert und gebunden werden sollen, wird der Compiler mit der Option -no-pie aufgerufen.
Wenn Compilierung und Binden durch getrennte Aufrufe von gcc bewirkt werden, wird die Option -no-pie nur für den Aufruf benötigt, der das Binden bewirkt.
Wenn mit einem Makefile compiliert wird, sind Compilierung und Binden in der Regel getrennt; es gilt dann obiger Hinweis. Es düfte gute Praxis sein, die Optionen für das Binden als Wert einer Variablen bereitzuhalten.
LDFLAGS = `pkg-config $(GUI) --libs` -no-pie
Wenn eine oder mehrere Quelldateien mit einem einzigen Aufruf des Compilers g++ compiliert und gebunden werden sollen, wird der Compiler mit der Option -no-pie aufgerufen.
Wenn Compilierung und Binden durch getrennte Aufrufe von g++ bewirkt werden, wird die Option -no-pie nur für den Aufruf benötigt, der das Binden bewirkt.
Wenn mit einem Makefile compiliert wird, sind Compilierung und Binden in der Regel getrennt; es gilt dann obiger Hinweis. Es düfte gute Praxis sein, die Optionen für das Binden als Wert einer Variablen bereitzuhalten.
LDFLAGS = `pkg-config gtk+-3.0 --libs` -no-pie
In die Projektdatei ist die Zeile
QMAKE_LFLAGS += -no-pie
einzufügen. Die Hilfsprogramm qmake erzeugt dann ein Makefile, das die Option -no-pie für das Binden des Programms verwendet.
In der Projektdatei sollte die folgende Angabe stehen:
package Linker is for Default_Switches("Ada") use ( "-no-pie"); end Linker;
Eine vollständige Projektdatei für ein kleines oder mittleres Programmierprojekt mit GtkAda könnte etwa so aussehen:
with "gtkada"; project Bttn001 is for Source_Dirs use ("inc", "src"); for Object_Dir use "obj"; for Main use ("main.adb"); for Exec_Dir use "."; package Linker is for Default_Switches("Ada") use ( "-no-pie"); end Linker; end Bttn001;
Projektdateien aller in diesem Tutorial für TinkerOS bereitgestellten Ada-Programme enthalten die hier gezeigte Linker-Option.