Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]tool per dipendenze?

    ciao.
    Devo estrarre da qt delle parti di programma di cui ho chiaramente i sorgenti.
    Esiste un tool per il c++ che enumera tutte le dipendenze da inserire(i .h) per utilizzare un certo .cpp?
    sarebe molto utile.
    grazie.

  2. #2
    I file di inclusione richiesti da un certo .cpp per essere compilato devono essere inclusi nel .cpp stesso, altrimenti non si riuscirebbe a compilare, quindi ti basta un grep cercando #include... o forse mi sfugge qualcosa...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    no , scusa mi sono spiegato male.
    Se includo un .h questo .h puo includere un altro .h e cosi via, volevo sapere se c'era qualcosa che mi creava un pacchettino di file per un dato .cpp o piu d'uno che sia indipendente dal programma base.
    ma mi sembra difficile.
    grazie, ciao MItaly

  4. #4
    Non credo sia difficile fare una cosa del genere, con g++ ad esempio posso usare degli switch per fermarsi alla precompilazione, ed estrarre dal file precompilato i nomi dei file inclusi:
    codice:
    g++ -E helloworld.cpp | egrep '^#\ [0-9]*\ *\"([^<].*)\"' | cut -d '"' -f 2 | sort -u
    risultato:
    codice:
    helloworld.cpp
    /usr/include/c++/4.6/backward/binders.h
    /usr/include/c++/4.6/bits/allocator.h
    /usr/include/c++/4.6/bits/basic_ios.h
    /usr/include/c++/4.6/bits/basic_ios.tcc
    /usr/include/c++/4.6/bits/basic_string.h
    /usr/include/c++/4.6/bits/basic_string.tcc
    /usr/include/c++/4.6/bits/char_traits.h
    /usr/include/c++/4.6/bits/concept_check.h
    /usr/include/c++/4.6/bits/cpp_type_traits.h
    /usr/include/c++/4.6/bits/cxxabi_forced.h
    /usr/include/c++/4.6/bits/exception_defines.h
    /usr/include/c++/4.6/bits/functexcept.h
    /usr/include/c++/4.6/bits/ios_base.h
    /usr/include/c++/4.6/bits/istream.tcc
    /usr/include/c++/4.6/bits/locale_classes.h
    /usr/include/c++/4.6/bits/locale_classes.tcc
    /usr/include/c++/4.6/bits/locale_facets.h
    /usr/include/c++/4.6/bits/locale_facets.tcc
    /usr/include/c++/4.6/bits/localefwd.h
    /usr/include/c++/4.6/bits/move.h
    /usr/include/c++/4.6/bits/ostream_insert.h
    /usr/include/c++/4.6/bits/ostream.tcc
    /usr/include/c++/4.6/bits/postypes.h
    /usr/include/c++/4.6/bits/range_access.h
    /usr/include/c++/4.6/bits/stl_algobase.h
    /usr/include/c++/4.6/bits/stl_function.h
    /usr/include/c++/4.6/bits/stl_iterator_base_funcs.h
    /usr/include/c++/4.6/bits/stl_iterator_base_types.h
    /usr/include/c++/4.6/bits/stl_iterator.h
    /usr/include/c++/4.6/bits/stl_pair.h
    /usr/include/c++/4.6/bits/streambuf_iterator.h
    /usr/include/c++/4.6/bits/streambuf.tcc
    /usr/include/c++/4.6/bits/stringfwd.h
    /usr/include/c++/4.6/cctype
    /usr/include/c++/4.6/clocale
    /usr/include/c++/4.6/cwchar
    /usr/include/c++/4.6/cwctype
    /usr/include/c++/4.6/debug/debug.h
    /usr/include/c++/4.6/exception
    /usr/include/c++/4.6/ext/atomicity.h
    /usr/include/c++/4.6/ext/new_allocator.h
    /usr/include/c++/4.6/ext/numeric_traits.h
    /usr/include/c++/4.6/ext/type_traits.h
    /usr/include/c++/4.6/initializer_list
    /usr/include/c++/4.6/ios
    /usr/include/c++/4.6/iosfwd
    /usr/include/c++/4.6/iostream
    /usr/include/c++/4.6/istream
    /usr/include/c++/4.6/new
    /usr/include/c++/4.6/ostream
    /usr/include/c++/4.6/streambuf
    /usr/include/c++/4.6/string
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++allocator.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h
    /usr/include/ctype.h
    /usr/include/endian.h
    /usr/include/features.h
    /usr/include/getopt.h
    /usr/include/locale.h
    /usr/include/pthread.h
    /usr/include/sched.h
    /usr/include/stdio.h
    /usr/include/time.h
    /usr/include/unistd.h
    /usr/include/wchar.h
    /usr/include/wctype.h
    /usr/include/x86_64-linux-gnu/bits/byteswap.h
    /usr/include/x86_64-linux-gnu/bits/confname.h
    /usr/include/x86_64-linux-gnu/bits/endian.h
    /usr/include/x86_64-linux-gnu/bits/environments.h
    /usr/include/x86_64-linux-gnu/bits/locale.h
    /usr/include/x86_64-linux-gnu/bits/posix_opt.h
    /usr/include/x86_64-linux-gnu/bits/predefs.h
    /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
    /usr/include/x86_64-linux-gnu/bits/sched.h
    /usr/include/x86_64-linux-gnu/bits/setjmp.h
    /usr/include/x86_64-linux-gnu/bits/time.h
    /usr/include/x86_64-linux-gnu/bits/timex.h
    /usr/include/x86_64-linux-gnu/bits/types.h
    /usr/include/x86_64-linux-gnu/bits/typesizes.h
    /usr/include/x86_64-linux-gnu/bits/wchar.h
    /usr/include/x86_64-linux-gnu/bits/wordsize.h
    /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
    /usr/include/x86_64-linux-gnu/gnu/stubs.h
    /usr/include/x86_64-linux-gnu/sys/cdefs.h
    /usr/include/xlocale.h
    /usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h
    /usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h
    (e suppongo si possano fare cose analoghe con VC++, lì mi pare che la direttiva da ricercare nel file precompilato sia #file)

    In ogni caso, fare un mestiere del genere con le Qt non credo sia una buona idea, è un framework complesso e con un approccio "naive" del genere a naso mi pare che ci sia il rischio di sfasciare tutto (specie perché da qui ricavi gli include da tirarti dietro, ma non le librerie da linkare)... tieni conto poi che le Qt sono già modularizzate (ci sono i vari moduli QtGui, QtCore, ...), non ti basta già questo?
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.