Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 06/02/2014, à 05:17

temps

[résolu] Construction d'une librairie dynamique .so

Bonjour,
De manière à rendre des applications audio que j'ai écris plus facile d'utilisation,
j'ai l'intention de de créer plusieurs .deb à la place du grand répertoire compressé actuel,
et ensuite de créer mon dépôt ppa qui pourra éventuellement aussi accueillir d'autres .deb  .

L'intérieur du répertoire actuel, est composé de trois grandes formes principales en (SDL 1.2, Qt5, gtl+ -3),  une multitude d'applications dont certaines peuvent être indépendantes, et de nombreux fichiers audio sous mon format souvent accompagné d'un tableur qui montre les formes et comment je les construits.

Avant de commencer la création du .deb, je pense qu'il faut en premier créer une librairie dynamique qui pourra être reprise par les différents .deb
Est-ce que quelqu'un a des idées et des conseils sur comment procéder ?

Cordialement

Dernière modification par temps (Le 08/02/2014, à 14:57)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#2 Le 06/02/2014, à 09:21

Nasman

Re : [résolu] Construction d'une librairie dynamique .so

Je viens de me mettre au C et ai vu quelques tutos sur ce point.

A la compilation, utiliser l'option

-f PIC

pour "Position Independant Code, code relogeable"

à l'édition des liens

gcc -shared -o libName.so.xxx.yyy.zzz -Wl, -soname, libName.so.xxx

ou
"shared" signifie bibliothèque partagée
libName.so.xxx.yyy.zzz est le nom du fichier produit
-soname libName.so.xxx définit le nom sous lequel sera appelé cette bibliothèque

j'espère que celà répond à ta question


PC fixe et portable avec Precise 64 bits

Hors ligne

#3 Le 06/02/2014, à 14:07

temps

Re : [résolu] Construction d'une librairie dynamique .so

Bonjour,
Merci pour la réponse, je vais partir la dessus ce soir.
J'ai commencé à créer et mis en ligne quelques .deb simple en exemple joa-a-jo qui permet de transformer une suite de fronts en colonne composée de 2 valeurs en fichier audio le joa-a-jo.deb est ici

Je vais voir d'intégrer les bibliothèques dans les suivants et je dirais si j'y arrive comment j'ai fais.
Je reviendrai posté comme je fais mes deb, cela prend 5mn, ils s'installent bien, et se désinstalle bien, toutefois il reste un warming que c'est pas propre, j'ai regardé les logs, c'st une histoire de droit qui m'échape

Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#4 Le 06/02/2014, à 21:42

temps

Re : [résolu] Construction d'une librairie dynamique .so

Bonsoir,
J'ai commencé à regardé un peu, et j'en suis pas là.
En fait j'ai une application qui fonctionne bien dans un répertoire, je sais faire un .deb, et je cherche à faire une librairie contenant les applications en C (je pense pouvoir le faire sans problème), jes applications en bash, les images (en exemple les fonds d'écrans de la version SDL).

pour créer mon .deb, je crée un répertoire au nom de l'application dans mon home
mkdir joa-a-jo
dans ce répertoire je crée 2 répertoires DEBIAN et usr
dans Debian, je crée 2 fichiers control et postrm pour pouvoir désinstaller proprement
dans usr je crée un répertoire bin et je place mon appli compilé dans bin  ensuite dans usr je crée un répertoire share, dans lequel je crée un nouveau répertoire doc qui me servira plus tard à mettre des fichiers d'explications sur le fonctionnement de l'appli

voici le contenu de mon fichier control

Source: joa-a-jo
Section: base
Priority: extra
Maintainer: Joris Abadie <temps.jo@gmail.com>
Version: 1.0
Homepage: <http://www.letime.net/vocale>
Package: joa-a-jo
Architecture: all
Depends: bash
Description:  Createur de fichiers audio pour lm3jo 2 octets 
 joa-a-jo permet de creer ses fichiers audio a l'aide d'un simple copier coller de 2 valeurs en colonne a partir d'un tableur 

et voici pour désinstaller l'appli le fichier postrm

#!/bin/bash
	
rm ~/.joa-a-jo

exit 0

je mets les droits en 755 et enfin je crée le .deb avec

dpkg-deb --build joa-a-jo

La question que je me pose est : est-ce qu'il ne me suffirait pas d'ajouter dans le répertoire share les image.png pour que celles-ci soient accessible à l'application ? Ou si c'est pas ça comment faut-il faire, car j'ai plus de 25000 fichiers audio par librairie, même s'ils sont ultra léger il y a la quantité

Je vois bien un répertoire lib dans usr dans lequel je placerai ma lib .so, mais comment placer les png dans .so ?

Cordialement

Dernière modification par temps (Le 06/02/2014, à 22:00)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#5 Le 06/02/2014, à 23:52

telliam

Re : [résolu] Construction d'une librairie dynamique .so

le mieux est effectivement de mettre les png et mm les sons dans les repertoires  sous share/
ensuite dans ton appli, soit tu codes en 'dur' le chemin vers share/ pour aller lire tes images et sons.
Soit tu crées un fichiers de configuration qui sera lu au démarrage de ton appli et qui contient le chemin vers tes fichiers et images.
il ne faut pas mettre de fichiers images ou sans dans le repertoire lib, car cela impactera surement la recherche des librairies dans ce répertoires. ( et puis on mélange pas les poules et les cochons )


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#6 Le 07/02/2014, à 00:17

temps

Re : [résolu] Construction d'une librairie dynamique .so

Merci pour ces précieux renseignements.
C'est exactement cette information que je recherchais.

Je vais essayer ce week-end de faire un premier deb assez simple sur le mixer 16 pistes. Je pense qu'il est plus ludique de faire plusieurs deb assez simples, plutot que l'orientation première comme dans le répertoire actuel d'une application très lourde ayant de nombreuses possibilité mais qui à la fin demande un apprentissage de plusieurs jours avant de commencer à en profiter.

Dès que j'ai réalisé le deb avec le .so, je poste en résolu

Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#7 Le 07/02/2014, à 19:40

temps

Re : [résolu] Construction d'une librairie dynamique .so

Bonjour,
Premier retour d'expérience.
J'ai essayé ce soir d'ajouter dans share un répertoire nommé lm3jo
dans ce répertoire j'ai créé 2 répertoires, un nommé audio dans lequel j'ai placé les fichiers jo et un répertoire nommé image dans lequel j'ai placé les png
j'ai modifier les liens en conséquence en ajoutant dans l'application avant compilation devant chaque .jo ou .png /usr/share/lm3jo/audio/  ou /usr/share/lm3jo/image/ et sa marche, je peux lancer l'application de n'importe ou, après l'installation avec le gestionnaire de paquet.

Je vais m'attaquer maintenant aux bash, aux applications en C dépendantes, et au passage créer des tableurs de manière à éviter les fonctions de calcul qui rendent mon format audio compatible aux technologies des cartes audio actuelles.

Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#8 Le 07/02/2014, à 23:59

temps

Re : [résolu] Construction d'une librairie dynamique .so

Deuxième retour pour les bash, il suffit de les placer avec l'application dans /usr/bin du répertoire de la construction du deb , ça marche très bien.
Il faut pense aussi à modifier les code à savoir enlever le ./ qui précède et aussi modifier le fichier de désinstallation en y ajoutant tous les bash ajoutés dans le bin
Mais il y a quelque chose qui me gène, c'est que pour la version SDL  j'utilise un bash par touche du clavier, ce qui fait que j'ai un grand nombre de bash.
En d'autres mots, si je construit mon deb comme ça, quand l'utilisateur va installer le paquet deb, il va installer l'application dans son /usr/bin ce qui est normal, mais par la même occasion, il va aussi mettre tous les bash aussi dans son /usr/bin.
Des bash très léger en voici un en exemple

#/bin/bash
./aasynthe1 $1

mais des bash en grande quantité

Est-il possible d'utiliser un répertoire dans /usr/bin ? De manière à bien séparer l'application audio des autres ?

Cordialement

Dernière modification par temps (Le 08/02/2014, à 01:01)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

Haut de page ↑