Сбой компилятора gcc для установки пакета R lpSolve

0

Я получаю сообщение об ошибке "-Werror = format-security", когда gcc компилирует lpSolve в R.

Я использую Ubuntu 12.04 (ядро lubuntu) и R версии 3.1.0.

Вот точная ошибка:

   * installing *source* package ‘lpSolve ...
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I . -DINTEGERTIME -DPARSER_LP -DBUILDING_FOR_R -DYY_NEVER_INTERACTIVE -DUSRDLL -DCLOCKTIME -DRoleIsExternalInvEngine -DINVERSE_ACTIVE=INVERSE_LUSOL -DINLINE=static -DParanoia     -fpic  -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c colamd.c -o colamd.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I . -DINTEGERTIME -DPARSER_LP -DBUILDING_FOR_R -DYY_NEVER_INTERACTIVE -DUSRDLL -DCLOCKTIME -DRoleIsExternalInvEngine -DINVERSE_ACTIVE=INVERSE_LUSOL -DINLINE=static -DParanoia     -fpic  -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c commonlib.c -o commonlib.o
commonlib.c: In function ‘blockWriteINT:
commonlib.c:691:3: error: format not a string literal and no format arguments [-Werror=format-security]
commonlib.c: In function ‘blockWriteBOOL:
commonlib.c:710:3: error: format not a string literal and no format arguments [-Werror=format-security]
commonlib.c: In function ‘blockWriteREAL:
commonlib.c:732:3: error: format not a string literal and no format arguments [-Werror=format-security]
cc1: some warnings being treated as errors
make: *** [commonlib.o] Error 1
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I . -DINTEGERTIME -DPARSER_LP -DBUILDING_FOR_R -DYY_NEVER_INTERACTIVE -DUSRDLL -DCLOCKTIME -DRoleIsExternalInvEngine -DINVERSE_ACTIVE=INVERSE_LUSOL -DINLINE=static -DParanoia     -fpic  -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c commonlib.c -o commonlib.o
commonlib.c: In function ‘blockWriteINT:
commonlib.c:691:3: error: format not a string literal and no format arguments [-Werror=format-security]
commonlib.c: In function ‘blockWriteBOOL:
commonlib.c:710:3: error: format not a string literal and no format arguments [-Werror=format-security]
commonlib.c: In function ‘blockWriteREAL:
commonlib.c:732:3: error: format not a string literal and no format arguments [-Werror=format-security]
cc1: some warnings being treated as errors
make: *** [commonlib.o] Error 1
ERROR: compilation failed for package ‘lpSolve
* removing ‘/home/ben/lpSolve.Rcheck/lpSolve

Я попытался вручную установить его с помощью R CMD INSTALL. Я также следил за инструкциями здесь безрезультатно.

Спасибо, что посмотрели.

Теги:
gcc

1 ответ

0

Ошибка возникает в fprintf в функциях, поэтому, если вы загружаете исходный код, повторно создайте пакет, и он будет разрешен. Но упаковка lpSolve в настоящее время остается сиротой. Ошибка может произойти из-за проверки компилятора. Здесь можно сделать обход.

  1. Перейдите к пути R etc (например,/usr/lib/R/etc, или /etc/R).
  2. Отредактируйте файл Makeconf: удалите -Werror = format-security в CFLAGS. (Это файл только для чтения, поэтому требуется авторизация.)
  3. Переустановите пакет: install.package('lpSolve')
  4. Восстановите файл Makeconf, если необходимо.

Надеюсь, это поможет вам.

  • 1
    Сейчас пакет lpSolve обновлен до версии 5.6.8, поэтому проблем с установкой пакета lpSolve больше нет. Журнал изменений можно проверить по адресу cran.rstudio.com/web/packages/lpSolve/ChangeLog

Ещё вопросы

Сообщество Overcoder
Наверх
Меню