Ich habe schon viele Lösungen ausprobiert, die ich gegründet habe, aber keiner von denen funktioniert dann. Ich arbeite an einem neuen Code für ein Projekt, aber dieser Code wurde von vielen Master- und Doktor-Abschlüssen berührt, die nicht darauf abzielen, sie readbar zu machen. Es gibt also eine Menge Dinge, die nicht nützlich oder gar nicht genutzt werden.gcov erzeugt nicht alle gcda files
Dann gehe ich über gcov und lcov, aber nachdem ich .info-Datei generieren und in lcov html, neben all meinen Dateien es nur verfolgen die Hauptdatei! Auch viele andere Funktionen und Dateien wurden verwendet!
(Wirklich leid für meinen schlechtes Englisch, im von Manaus, Amazonas - Brasilien und keine guten Englisch-Sprecher Aber ive einer Menge Dinge versuchen, für wie ein Monat für diese Antwort gesucht, aber überhaupt kein Glück bekam)
Meine Dateien wie folgt aussehen:
-src/
-core/
-Index.cpp/h
-PostingList.cpp/h
-PreProcessor.cpp/h
-methods/
...
-parser/
...
-run/
...
-structures/
...
-utils/
...
bekam ich ein CMakeFile.txt im Verzeichnis Projektquelle, die wie folgt aussehen:
cmake_minimum_required (VERSION 2.4)
project (queryProcessor)
include("${${PROJECT_NAME}_SOURCE_DIR}/globalVariables.cmake")
include_directories(${INCLUDES})
link_directories(${LIBS})
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
add_subdirectory(src)
add_executable(QueryProcessor src/run/queryProcessor.cpp)
target_link_libraries (QueryProcessor libQueryProcessor rt -fprofile-arcs)
add_definitions(-O2)
und ein weiteres auf src-Verzeichnis, das aussieht wie folgt aus:
aux_source_directory(utils UTILS)
aux_source_directory(parser PARSER)
aux_source_directory(methods METHODS)
aux_source_directory(structures STRUCTURES)
aux_source_directory(core CORE)
aux_source_directory(. SRC)
aux_source_directory(../../libs-iw/indexer/include UTILS2)
add_library(libQueryProcessor ${UTILS} ${UTILS2} ${SRC} ${PARSER} ${METHODS} ${STRUCTURES} ${CORE})
set(CMAKE_CXX_FLAGS "--coverage")
include (${${PROJECT_NAME}_SOURCE_DIR}/install.cmake)
Jede Hilfe wird mit Vorschlägen für eine bessere CMakeFiles geschätzt werden, Dank im Voraus
Haben libQueryProcessor-Objektdateien tatsächlich mit richtigen Flags kompiliert? Verwende 'make clean; mach VERBOSE = 1 ', um in den ausführlichen Modus zu wechseln, und überprüfe Compiler- und Linker-Aufruf-Flags sorgfältig. – user3159253
Es ist auch ratsam, alle Kompilierungsflagmanipulationen _before_ zu verschieben, um ein neues Ziel zu definieren oder ein Unterverzeichnis hinzuzufügen. – user3159253
Danke @ user3159253! Bewegen Sie jetzt bereits Flaggenmanipulationen und lesen Sie die ausführliche Ausgabe sorgfältig durch. Der einzige Unterschied von einer Datei zu einer anderen besteht darin, dass beim Verknüpfen der CXX-Datei das Argument -fprofile-arcs verwendet wird. Ist dies die Datei, die in jeder cpp benötigt wird? –