Сборка пакетов из исходного кода на Arch linux

#!/bin/bash

function MY_CODE(){
    START_TIME_SECONDS=$(date +%s)
    <your code>
    END_TIME_SECONDS=$(date +%s)
    SCRIPT_RUN_TIME_IN_SECONDS=$((${END_TIME_SECONDS}-${START_TIME_SECONDS}))
    SLEEP_TIME=$((3600-${SCRIPT_RUN_TIME_IN_SECONDS}))
    sleep ${SLEEP_TIME}
}

MY_CODE()
1
23.10.2018, 04:31
1 ответ

Все ошибки компиляции в журнале сборки имеют вид:

error: narrowing conversion of ‘ddd’ from ‘int’ to ‘char’ inside { } [-Wnarrowing]

Существует множество других средств диагностики компилятора, но все они являются предупреждениями, -а не ошибки -, с которыми можно жить.

Ошибки возникают из-за того, чтоwxGTK2-2.8.12-выпущен в марте 2011 г. -был написан для компиляции по более раннему стандарту C++ (C++98, то есть C++ 1998 )чем стандарт, который используется по умолчанию для вашего компилятора g++,сейчас в июле 2017. Я предполагаю, что у вас есть компилятор g++6 или более поздней версии, который по умолчанию использует C++14 (C++ 2014 ). Начиная со стандарта C++11, сужающее преобразование, которое нарушает вашу сборку был признан плохо -сформированным, чего раньше не было.

Вы можете указать g++компилировать в соответствии со стандартом C++ по вашему выбору, передав ему опцию -std={c++98|c++03|c++11|c++14|c++17}, и вы можете передайте свой выбор скрипту wxGTK2-2.8.12configure, включив его в значение параметра CXXFLAGSдля ./configure. Любой из -std=c++98или -std=c++03удалит ошибки преобразования сужения, например.

../configure CXXFLAGS=-std=c++03 --prefix=/opt/wx/2.8 --enable-xrc --enable-monolithic --enable-unicode

В качестве альтернативы вы можете просто дать указание g++подавить диагностику, обозначенную-Wnarrowing:

../configure CXXFLAGS=-Wno-narrowing --prefix=/opt/wx/2.8 --enable-xrc --enable-monolithic --enable-unicode

Скрипт ./configureлюбого пакета GNU autotools (, такой как вы пытаетесь сборка )будет иметь параметры, включая:

CC          C compiler command
CFLAGS      C compiler flags
LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
          nonstandard directory <lib dir>
CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
          headers in a nonstandard directory <include dir>
CPP         C preprocessor
CXX         C++ compiler command
CXXFLAGS    C++ compiler flags

, которые помогут вам скорректировать отклонения между вашей цепочкой инструментов и значения по умолчанию, которые ожидались сопровождающими пакета при выпуске упаковка. См. ./configure --help.

0
28.01.2020, 00:53

Теги

Похожие вопросы