Open zaufi opened 4 years ago
I also, tried to build w/ GCC 8.3.0 and Clang 9.0.0 → same result.
This is not a Sourcetrail related issue. I think you most likely have multiple C standard libraries installed and the compiler has issues choosing the right one. I'm not an expert on these issues, try searching online for a solution.
@egraether,
Exherbo is a source-based distro. I built tons of various packages for it and also I do tons of builds using CMake at my job for several platforms. Having multiple compilers all the time is quite normal practice for me. And I would say Sourcetrail is the second package w/ this problem. The first one was IWYU (include-what-you-use) when it's built w/another version of clang than currently installed/active. But I have no idea why Sourcetrail behaves incorrectly like this.
@zaufi see if this helps https://github.com/machinekit/QtQuickVcp/issues/278
specifically:
This occurs throughout Qt in later versions with newer compilers.
The way to fix it is to edit mkspecs/common/gcc-base.conf
Change QMAKE_CFLAGS_ISYSTEM = -isystem to QMAKE_CFLAGS_ISYSTEM = -I (capital i)
I have been doing this since Qt 5.10.0 at least
Notice this line on your excerpt:
/usr/host/bin/g++-9 -DBOOST_ALL_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBUILD_TYPE=\"Release\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/work/Sourcetrail/build -I/work/Sourcetrail -I/work/Sourcetrail/src/lib_utility/utility -isystem /usr/host/include -isystem /usr/host/include/qt5 -isystem /usr/host/include/qt5/QtWidgets -isystem /usr/host/include/qt5/QtGui -isystem /usr/host/include/qt5/QtCore -isystem /usr/host/lib/qt5/mkspecs/linux-g++ -isystem /usr/host/include/qt5/QtNetwork -O3 -DNDEBUG -fPIC -fPIC -std=gnu++14 -o CMakeFiles/Sourcetrail_lib_utility.dir/src/lib_utility/utility/TextCodec.cpp.o -c /work/Sourcetrail/src/lib_utility/utility/TextCodec.cpp
I was having issues with stdlib.h when indexing projects with Sourcetrail, which I fixed after removing /usr/include from the global include path in Project > Edit Project.
From the tooltip in Sourcetrail:
These paths are usually passed to the compiler with the '-isystem' flag.
But as mentioned in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
/usr/include is already a system include dir, so -isystem /usr/include serves no useful purpose.