Компиляция C ++ программы на Fedora - PullRequest
0 голосов
/ 30 июня 2009

У меня проблемы с компиляцией проекта C ++ с открытым исходным кодом на Fedora. Когда я загружаю и запускаю ./configure, я в конечном итоге получаю ....

.
.
.
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
./configure: line 15513: AX_CFLAGS_WARN_ALL: command not found
./configure: line 15514: AX_CXXFLAGS_WARN_ALL: command not found
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for bison... bison
./configure: line 15784: AX_PROG_GPERF: command not found
checking trace option enabled... no
checking for getrusage... yes
checking time profiling enabled... no
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking forcing use of select... no
checking use pipes to communication between scheduler and dispatcher... no
./configure: line 16280: syntax error near unexpected token `1.39.0'
./configure: line 16280: `AX_BOOST_BASE(1.39.0)'

Когда я компилировал эквивалентный проект в Windows, мне нужно было установить и обновить ссылки на проект в Boost. Я вижу, что это связано с повышением, но не уверен, почему я получил бы синтаксическую ошибку.

Несколько других вещей, на которые стоит обратить внимание, исходный код в configure и configure.ac содержал ссылки на boost 1.3.5 с теми же ошибками компиляции (очевидно, с 1.3.5 в сообщении об ошибке).

Я недавно установил boost 1.3.9 и обновил исходный код. Также обратите внимание, что когда я пытался

 yum install boost

сообщает, что у меня установлена ​​1.3.7, и это последняя версия. Я также попробовал 1.3.7 внутри исходного кода, но у меня та же проблема. Я просто не понимаю, почему я получаю синтаксическую ошибку!

это код внутри configure и configre.ac, который выдает ошибку

#BOOST
AX_BOOST_BASE(1.39.0)
AX_BOOST_THREAD

Любые мысли о том, куда идти дальше, были бы великолепны.

ТИА

G

Ответы [ 2 ]

0 голосов
/ 01 июля 2009

Я думаю, что ваш «проект с открытым исходным кодом» требует более поздней версии autoconf / aclocal чем версия установлена.

'AX_CFLAGS _WARN _ALL', ..., 'AX _BOOST _BASE', все это макросы autoconf, которые будет правильно расширен, если у вас была более новая версия autoconf.

0 голосов
/ 30 июня 2009

Я могу придумать несколько причин для этого. Во-первых, «Boost» - очень популярный фреймворк для программирования на C ++.

  1. В проекте есть ошибка (ошибка компиляции)
  2. Вы не правильно установили зависимости
  3. Проект не совместим с вашим дистрибутивом. Пакет в репозитории может быть устаревшим, поэтому он является самым последним для Fedora , но не самым последним пакетом Boost. Пользователи Fedora будут лучше сказать, если это так.
  4. Некоторые ваши зависимости были повреждены
  5. Вы не правильно следовали инструкциям
...