IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques C++ Discussion :

Tiers bibliothèque partagée sous linux erreur de symbole d'entrée


Sujet :

Bibliothèques C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Tiers bibliothèque partagée sous linux erreur de symbole d'entrée
    Bonjour,

    Je programme une bibliothèque dynamique sous linux (.so) et je compile sans erreurs. Le soucis et que quand je tape la commande "ld bibli.so" j'obtiens :
    AVERTISSEMENT: ne peut trouver le symbole d'entrée _start; pas d'initialisation de l'adresse de départ.
    La bibli ne trouve pas dynamiquement toutes les biblio tierces (comme assimp, anttweakbat, glew...).

    Pouvez-vous me dire pourquoi cette erreur. J'ai cherché un peu partout, mais je n'ai pas trouvé de solutions à mon problème.

    Je vous remercie d'avance,

    chtimy

  2. #2
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    Bonjour,

    Non, on ne peut pas t'aider. Enfin, pas avec les informations que tu nous fournis. Il y a des dizaines de causes possibles pour une telle erreur et si tu ne nous explique pas ce que tu as fait, on ne peut pas savoir ce qui va mal.


    Cordialement
    Fenkys

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Bonsoir,

    Pardonnez moi pour le peu d'informations. Je travaille sur la création d'une libA.so qui utilise les biblios suivantes :
    Assimp, GLEW, GLFW, anttweakbar, boost...

    J'utilise cmake pour générer ma libA.so pour me simplifier la vie. Voici le code du cmakelist :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    cmake_minimum_required(VERSION 2.8)
     
    project(SEED CXX)
     
     
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -fPIC")
    set(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} -fPIC")
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
     
    file(
        GLOB_RECURSE
        GRAPHICS_SRC
        ${CMAKE_CURRENT_SOURCE_DIR}/src/Seed/Graphics/*
        ${CMAKE_CURRENT_SOURCE_DIR}/include/Seed/Graphics/*
        ${CMAKE_CURRENT_SOURCE_DIR}/ressources/*
    )
     
    #Seed's graphics library
    add_library(
        Seed-Graphics
     
        SHARED
        
        ${GRAPHICS_SRC}
    )
     
    include(${CMAKE_CURRENT_SOURCE_DIR}/../examples/GraphicsTest)
     
    #INCLUDES
    #include seed-graphics include
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
    # include Materials
    include_directories(ressources/Materials)
    # GLM include directories
    include_directories(lib-required/glm)
    # Boost include directories
    include_directories(lib-required/boost)
    # AntTweakBar include directories
    include_directories(lib-required/antTweakBar/include)
    # Assimp include directories
    include_directories(lib-required/assimp/include)
    # Glew include directories
    include_directories(lib-required/glew/include)
    # GLFW include directories
    include_directories(lib-required/glfw/include)
     
    # add a target to generate API documentation with Doxygen
    find_package(Doxygen)
    if(DOXYGEN_FOUND)
    	configure_file(
    		${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in 
    		${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY
    	)
     
    	add_custom_target(
    		doc
    		${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
    		WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    		COMMENT "Generating API documentation with Doxygen" VERBATIM
    	)
    endif(DOXYGEN_FOUND)
     
    if(WIN32)
    	find_package(OpenGL REQUIRED)
    	target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/assimp/lib/assimp_release-dll_win32/assimp.lib)
    	target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/glew/lib/Release/Win32/glew32.lib)
    	target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/glfw/lib-vc2013/glfw3.lib)
    	target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/glfw/lib-vc2013/glfw3dll.lib)
    	target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/antTweakBar/lib/AntTweakBar.lib)
    	target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/boost/lib/WIN_32/libboost_filesystem-vc120-mt-gd-1_59.lib)
    	target_link_libraries(Seed-Graphics ${OPENGL_INCLUDE_DIRS})
    else(WIN32)
    	#GLEW package
    	find_package(GLEW REQUIRED)
    	if (GLEW_FOUND)
    	    include_directories($(GLEW_INCLUDE_DIRS))
    	    link_libraries(${GLEW_LIBRARIES})
    	endif()
     
    	#GLFW package
    	find_package(PkgConfig REQUIRED)
    	pkg_search_module(GLFW REQUIRED glfw3)
    	if(GLFW_FOUND)
    		include_directories(${GLFW_INCLUDE_DIRS})
    		link_libraries(${GLFW_LIBRARIES})
    	endif()
     
    	#ASSIMP PACKAGE
    	find_package(PkgConfig REQUIRED)
    	pkg_search_module(ASSIMP REQUIRED assimp)
    	if(ASSIMP_FOUND)
    		include_directories(${ASSIMP_INCLUDE_DIRS})
    		link_libraries(${ASSIMP_LIBRARIES})
    	endif()
     
    	#anttweakbar
    	#target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/antTweakBar/lib/Linux/libAntTweakBar.so.1)
     
    	#BOOST
    	target_link_libraries(Seed-Graphics ${CMAKE_CURRENT_SOURCE_DIR}/lib-required/boost/lib/Linux/libboost_filesystem.so)
    endif(WIN32)
    Tout compile bien, mais quand j'effectue la commande ld sur ma libA.so compilé, j'obtient les erreurs suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ld lib/libSeed-Graphics.so 
    ld: AVERTISSEMENT: ne peut trouver le symbole d'entrée _start; pas d'initialisation de l'adresse de départ
    lib/libSeed-Graphics.so: référence indéfinie vers « __glewBindBuffer »
    lib/libSeed-Graphics.so: référence indéfinie vers « __glewGetShaderiv »
    lib/libSeed-Graphics.so: référence indéfinie vers « glEnable »
    [...]
    lib/libSeed-Graphics.so: référence indéfinie vers « glGenTextures »
    lib/libSeed-Graphics.so: référence indéfinie vers « Assimp::Importer::~Importer() »
    lib/libSeed-Graphics.so: référence indéfinie vers « __glewUnmapBuffer »
    lib/libSeed-Graphics.so: référence indéfinie vers « glfwWindowShouldClose »
    lib/libSeed-Graphics.so: référence indéfinie vers « Assimp::Importer::GetErrorString() const »
    J'espère avoir donné plus d'informations,

    chtimy

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2012, 16h13
  2. 8i sur Linux : Erreur loadin shared object file
    Par NGONGO ETABA dans le forum Oracle
    Réponses: 2
    Dernier message: 24/03/2006, 11h40
  3. [gcc] créer une bibliothèque partagée
    Par jula dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 17/11/2005, 11h00
  4. [ 3.1 ] [ Linux ] Erreur au démarrage
    Par lr dans le forum Eclipse Java
    Réponses: 14
    Dernier message: 28/09/2005, 23h18
  5. Réponses: 4
    Dernier message: 27/08/2003, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo