Re: lignes d'un fichier en C ou C++

Page principale

Répondre à ce message
Auteur: anne.guilde@free.fr
Date:  
À: guilde
Sujet: Re: lignes d'un fichier en C ou C++
Le 03/04/2018 à 15:41, anne.guilde@??? a écrit :
>>>
>>>> suite de mes questions
>>>>
>>>> - Comment faire pour faire du pas à pas (mode debug)?
>>>> Il faut recompiler?
>>>> Si oui, comment et quel paquet installer?
>>>
>>> L'outil de build utilisé est CMake, il faut installer :
>>>
>>> apt install build-essentials
>>> apt install cmake
>>>
>>> Pour lancer le build :
>>>
>>> cd VVV-1.3-src/src
>>> cmake .
>>>
>>> Mais chez moi le build échoue car il manque des dépendances, je ne
>>> connais pas CMake, y a t'il moyen de récupérer automatiquement la
>>> liste des dépendances ?
>>> Dans CMakeLists.txt Il y  a une ligne :
>>>
>>> FIND_PACKAGE(wxWidgets REQUIRED html adv core base net aui xrc qa
>>> richtext )
>>>
>>> comment se fait le lien avec le nom des paquets ?
>>>
>
> on m'a donné la solution, faut mettre les paquets dev.
>
> maintenant dans CMakeCache.txt
> FIND_PACKAGE_MESSAGE_DETAILS_wxWidgets:INTERNAL=[-L/usr/lib/x86_64-linux-gnu;-pthread;;;-lwx_gtk2u_html-3.0;-lwx_gtk2u_adv-3.0;-lwx_gtk2u_core-3.0;-lwx_baseu-3.0;-lwx_baseu_net-3.0;-lwx_gtk2u_aui-3.0;-lwx_gtk2u_xrc-3.0;-lwx_gtk2u_qa-3.0;-lwx_gtk2u_richtext-3.0][/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0;/usr/include/wx-3.0][v3.0.2()]
>
>
> Mais problème suivant
>
> find_path( TAGLIB_INCLUDE_PATH tag.h DOC "Path to TagLib header files" )
> ...
>   find_library( TAGLIB_LIB libtag.a PATHS /usr/lib /usr/local/lib )
>
>   if( NOT TAGLIB_LIB )
>
>     message( FATAL_ERROR "Unable to find TagLib" )
>
>   else( NOT TAGLIB_LIB )
>
>     message( STATUS "TagLib: " ${TAGLIB_LIB} )
>
>   endif( NOT TAGLIB_LIB )
>
> le locate a trouvé /usr/include/taglib/tag.h
> mais pas de libtag.a


CMakeLists.txt
...
# look for TagLib

find_path( TAGLIB_INCLUDE_PATH tag.h DOC "Path to TagLib header files" )

message( STATUS "TagLib header files path: " ${TAGLIB_INCLUDE_PATH} )

if(WIN32)

find_file( TAGLIB_LIB_PATH_DEBUG tagd.lib DOC "Path to the DEBUG
TagLib library" )

find_file( TAGLIB_LIB_PATH_RELEASE tag.lib DOC "Path to the RELEASE
TagLib library" )

else(WIN32)

find_library( TAGLIB_LIB libtag.a PATHS /usr/lib /usr/local/lib )

if( NOT TAGLIB_LIB )

     message( FATAL_ERROR "Unable to find TagLib" )


else( NOT TAGLIB_LIB )

     message( STATUS "TagLib: " ${TAGLIB_LIB} )


endif( NOT TAGLIB_LIB )

endif(WIN32)



include_directories( ${TAGLIB_INCLUDE_PATH} )

add_definitions( -DTAGLIB_STATIC )



if( WIN32 )

add_definitions( -DIBPP_WINDOWS )

elseif( APPLE )
add_definitions( -DIBPP_DARWIN )

else( WIN32 )

add_definitions( -DIBPP_LINUX )

endif( WIN32 )

...

libtag.a que je ne trouve pas sur le net, c'est une archive?

Ce que l'on m'a dit
certaine librairie statique sont fournies dans les paquets -dev. Et
quand on les utilise cela veut dire que les fonctions nécessaires au
programmes sont extraites de l'archive (.a) et incluses dans le
programme. Pour cela il faut passer le drapeau -static à gcc (dans ce
cas tous les lib nécessaires sont compilés en statiques).

Pour faire une archive .a, on compile chaque fonction séparément pour
faire des .o, puis on met toutes ces fonctions dans l'archive à l'aide
de du programme « ar ».

J'ai trouvé cela
http://taglib.org/

Si quelqu'un a une idée pour faire le libtag.a

Merci
Anne