Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RESOLU] error: ld returned 1 exit status ubuntu 16.04  (Lu 6015 fois)

0 Membres et 1 Invité sur ce sujet

Varden

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
[RESOLU] error: ld returned 1 exit status ubuntu 16.04
« le: Mai 21, 2016, 11:54:38 pm »
Alors voila, presque a chaque fois ca foire et là j'ai tout essayer rien ne veut, je m'explique:

J'ai installer ubuntu 16.04 dernier du nom. je réinstalle code::blocks, mais il déconne et je vois que la version des paquets, la 13.jesaisplus est pas bien et donc comme indiqué j'installe la version 16.01, bref là n'est pas le problème.

je code avec SFML, et donc je télécharge la source, la compile via cmake-gui, configure configure generate ok. je fais mon make et sudo make install, tout va bien.

j'ouvre un projet effectuer sous code::blocks et avec SFML sur ubuntu 14.04 et qui fonctionnait très bien. je lance la compilation la seule erreur que ca marque dans la fenetre "build messages" est:

||error: ld returned 1 exit status|

je regarde dans la fenetre "Build log":


-------------- Build: Release in test fuck 2 (compiler: GNU GCC Compiler)---------------

g++ -L/usr/local/lib -o "bin/Release/test fuck 2" obj/Release/Main.o  -s  -lsfml-network -lsfml-audio -lsfml-graphics -lsfml-window -lsfml-system
/usr/bin/ld: bin/Release/test fuck 2: symbole caché « __cpu_model » dans /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a(cpuinfo.o) est référencé par DSO
/usr/bin/ld : échec de l'édition de liens finale : Mauvaise valeur
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s))
 
alors j'ai essayer en ajoutant dans "Project->Build options->Search directories" tout les chemins de include et de lib possible, que ce soit ceux de la source, de "usr/locale/lib" ou se trouve les libsfml, etc, rien n'y fait, absolument rien. que je ne mette rien, que je mette tout, que j'inverse, etc ca ne change absolument rien au résultat, meme pas d'erreur en plus, rien.

voila le code le plus minimal utilisant sfml et qui me renvois cela:

#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/Text.hpp>
#include <SFML/Window/Event.hpp>

#include <iostream>

int main()
{
    srand (time(nullptr));

    sf::RenderWindow fenetre(sf::VideoMode(1024,512), "fenetre", sf::Style::Default);

    while(fenetre.isOpen())
    {
        sf::Event evenements;
        while(fenetre.pollEvent(evenements))
        {
            switch (evenements.type)
            {
                case sf::Event::Closed:
                    fenetre.close();
                    break;
                case sf::Event::KeyPressed:
                    if(evenements.key.code == sf::Keyboard::Escape)
                    {  fenetre.close();  }
                    break;
                default:
                    break;
            }
        }

        fenetre.clear(sf::Color::Transparent);

        fenetre.display();
    }

    return EXIT_SUCCESS;
}

si j'utilise un IDE, c'est justement pour ne pas avoir a me taper les lignes de commandes de compilation et tout le bazar, en plus de toutes les options pratiques comme l'autocomplétion etc... si vous connaissez un autre IDE sous Ubuntu 16.04 avec ces fonctionnalités, je serais ravi d'aller l'essayer. sinon, je vous en prie, aider moi a résoudre ce problème qui doit être très simple... je vous en remercie d'avance mille fois...
« Modifié: Mai 23, 2016, 12:47:36 pm par Varden »

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : error: ld returned 1 exit status
« Réponse #1 le: Mai 22, 2016, 09:10:30 am »
après une petite recherche sur google , les premières pistes :

https://github.com/nothings/stb/issues/280 qui renvois vers https://bugs.launchpad.net/ubuntu/+source/gcc-5/+bug/1568899

un bug de gcc a priori ?

Varden

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
Re : error: ld returned 1 exit status
« Réponse #2 le: Mai 22, 2016, 10:27:37 am »
tout d'abord, merci pour ta réponse rapide.

ensuite, j'ai lu du mieux que mon anglais et mes connaissances techniques le permettent, et sur le deuxième lien que tu donne, d'autres utilisateurs de SFML 2.3.2 ont le meme problème donc je pense que tu as raison.

mais comment faire? je ne comprend pas vraiment ce qu'il explique, trop de details techniques en anglais...

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : error: ld returned 1 exit status
« Réponse #3 le: Mai 22, 2016, 12:52:47 pm »
d'après ce patch : http://web.archive.org/web/20160509014317/https://gitlab.peach-bun.com/pinion/SFML/commit/3383b4a472f0bd16a8161fb8760cd3e6333f1782.patch

tu dois modifier : src/SFML/Graphics/CMakeLists.txt b/src/SFML/Graphics/CMakeLists.txt

et ajouter ( a la ligne 148 ? )

Citer
add_definitions(-DSTBI_FAILURE_USERMSG)
 # when gcc is used; otherwise saving PNGs may crash in stb_image_write
 if(SFML_COMPILER_GCC)
     set_source_files_properties(${SRCROOT}/ImageLoader.cpp PROPERTIES COMPILE_FLAGS -fno-strict-aliasing)
+
+endif()
+
+# see https://bugs.launchpad.net/ubuntu/+source/gcc-5/+bug/1568899
+if(SFML_COMPILER_GCC AND BUILD_SHARED_LIBS)
+    message(WARNING "Applying workaround for https://bugs.launchpad.net/ubuntu/+source/gcc-5/+bug/1568899")
+    list(APPEND GRAPHICS_EXT_LIBS "-lgcc_s -lgcc")
 endif()
 
 # define the sfml-graphics target

Regarde comment appliquer un patch , je l'ai jamais fait, tu peu le faire a la main , n'oublie pas d'enlever les "+"

Varden

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
Re : [RESOLU] error: ld returned 1 exit status ubuntu 16.04
« Réponse #4 le: Mai 22, 2016, 03:41:05 pm »
ok, merci, je fais ca ce soir ou demain et je te tiens au courant, merci encore ^^.

EDIT:

Alors infiniment merci ^^. j'ai copier manuellement les lignes indiqués par des "+" en me fiant aux lignes précédentes et suivantes pour trouver le bon endroit, puis cmake-gui, configure configure generate, puis make, sudo make install a l'endroit du Build.
on voit qu'il n'y a que la lib Graphics qui est modifier.
je lance code::blocks, je compile niquel, tout marche ^^.

je te remercie énormement pour ta réponse rapide est claire. j'avais pourtant chercher pendant des heures sur google... le manque d'expérience sans doute ^^.
« Modifié: Mai 23, 2016, 12:47:05 pm par Varden »