Настройка автоконфигурации wxWidgets не устанавливает, включает dirs как -Isystem, но как -I - PullRequest
0 голосов
/ 27 августа 2018

Я унаследовал систему сборки, которая использует autoconf и automake для сборки.Я совсем не знаком с тем, как это работает, кроме как на высоком уровне.

Сама система сборки работает нормально.Однако много предупреждений генерируется из системных заголовков.В моем случае wxWidgets.Причина этого в том, что каталог включения wxWidgets передается как -I вместо -isystem.Я искал в Интернете, но не могу найти, как это изменить.

Следующий код находится в файле configure.ac:

AM_OPTIONS_WXCONFIG
AM_PATH_WXCONFIG(3.0.2, wxWin=1, , ,[--debug=yes])
if test "$wxWin" != 1; then
    AC_MSG_ERROR([
                wxWidgets must be installed on your system
                but no wx-config script could be found.

                Please check that wx-config is in path, the directory
                where wxWidgets libraries are installed as returned by
                'wx-config --libs' is in the linker path (LD_LIBRARY_PATH
                or equivalent variable) and wxWidgets version is 2.9.4 or
                above.
        ])
    fi
if test "$wxWin" != 0; then
    AC_DEFINE(HAVE_WXWIDGETS,1,[define if the wxWidgets 3.0.2. or higher is available])
fi

Тогда есть Makefile.am, которыйделает следующее:

bin_PROGRAMS = project
project_SOURCES     =   {sources here}


project_CPPFLAGS    =   $(AM_CPPFLAGS) $(PROJECT_CPPFLAGS) $(WX_CPPFLAGS)

project_CFLAGS      =   $(AM_CFLAGS)   $(PROJECT_CFLAGS)    $(WX_CFLAGS)

project_CXXFLAGS    =   $(AM_CXXFLAGS) $(PROJECT_CXXFLAGS) $(WX_CXXFLAGS)

project_LDFLAGS         =   $(AM_LDFLAGS)

project_LDADD       =   $(AM_LIBADD)   $(WX_LIBS)

Не представляется возможным, чтобы я мог каким-либо образом указать его в качестве системного заголовка.

Кто-нибудь из вас знает, как я могу справиться с этим?

1 Ответ

0 голосов
/ 27 августа 2018

Проблема не имеет ничего общего с autoconf. Это wx-config инструмент, который является виновником. Этот инструмент используется для получения включаемых каталогов. Например, вызов wx-config --cxxflag приведет к этому:

-I/usr/lib/wx/include/gtk2-unicode-3.1 -I/usr/include/wx-3.1 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread

Который передается компилятору. Есть несколько способов решения этой проблемы. Либо вручную замените его в выводе, либо исправьте wx-config.

...