[newbies] Ошибка при cmake-сборке

Ivan Zakharyaschev imz на altlinux.org
Чт Окт 26 15:08:31 MSK 2017


Hello!
On Thu, 26 Oct 2017, alexey wrote:

> Пытаюсь собрать пакет visualboyadvance-m и получаю ошибку
> x86_64-alt-linux-gcc: error: qc: No such file or directory

На самом деле, я помню, что там была следующая ошибка ещё (из личного 
общения) -- нету некого lib*.a файла. И это дополнительная информация в 
пользу объяснения, которое я высказываю ниже. Этот lib*.a не создаётся 
из-за показанной здесь предыдущей ошибки.

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

> Репозиторий на git.altlinux
> http://git.altlinux.org/people/alexey/packages/?p=visualboyadvance-m.git
>
> Исходные коды взял здесь
> https://github.com/visualboyadvance-m/visualboyadvance-m
>
> Насколько я понял, обращение к qc порождается cmake-ом. Результат поиска по 
> "qc" в приложенном файле (qc_hsh-shell_grep.txt).
>
> Может быть, кто-то с таким сталкивался? Буду рад любым соображениям по 
> преодолению.

Я погуглил по этим буквам: "qc" "cmake"; и найденные обсуждения наводят на 
мысль, что это аргумент для ar (см. man ar).

Такая ошибка могла возникнуть, если там делается что-то вроде (пример на 
shell):

$AR qc ...

а $AR при этом раскрывается в пустоту (потому что не определён).

И в этом grep-е по содержанию пакета cmake есть похожие вещи:

/usr/share/cmake/Modules/Platform/Windows-GNU.cmake:58: 
set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> 
<OBJECTS>")
/usr/share/cmake/Modules/CMakeFortranInformation.cmake:196: 
set(CMAKE_Fortran_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> 
<OBJECTS>")
/usr/share/cmake/Modules/CMakeCXXInformation.cmake:268: 
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> 
<OBJECTS>")
/usr/share/cmake/Modules/CMakeCUDAInformation.cmake:143: 
set(CMAKE_CUDA_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> 
<OBJECTS>")
/usr/share/cmake/Modules/CMakeCInformation.cmake:179: 
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> 
<OBJECTS>")

Вызов ar должен был бы создать требуемый lib*.a, но этого не 
происходит из-за того, что вместо настоящего ar почему-то подставляется 
пустота.

Больше ничего не знаю про cmake и дальше подсказать не могу.

-- 
Best regards,
Ivan


Подробная информация о списке рассылки devel-newbies