2009-06-29 53 views
-2

我在編譯Fedora上的開源C++項目時遇到問題。當我下載並運行./configure的我終於結了....編譯Fedora上的C++程序

. 
. 
. 
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)' 

當我編譯equivilant項目在Windows中我確實需要安裝和更新項目引用提振。我可以看到這與增強有關,但不知道爲什麼我會得到語法錯誤。

其他一些需要注意的是,configure和configure.ac中的原始源代碼引用了boost 1.3.5,編譯錯誤相同(在msg中顯然爲1.3.5)。

我最近安裝了boost 1.3.9並更新了源代碼。另外請注意,當我試圖

yum install boost 

它報告我有1.3.7安裝,這是最新版本。我也嘗試在源代碼中使用1.3.7,但是我遇到了同樣的問題。我只是不明白爲什麼我會得到一個語法錯誤!

這是引發錯誤

#BOOST 
AX_BOOST_BASE(1.39.0) 
AX_BOOST_THREAD 

在接下來要去哪裏將是巨大的任何想法內部配置和configre.ac代碼。

TIA

+0

嘗試將錯誤放置在「代碼」標籤內,以便我們可以看到錯誤格式正確。 – luiscubal 2009-06-29 23:03:03

+1

這與編程無關。 – rlbond 2009-06-29 23:03:04

回答

0

我想你「的開源項目」要求的autoconf/aclocal會 比安裝的版本更高版本。

'AX_CFLAGS _WARN _ALL',...,'AX_BOOST _BASE',都是autoconf宏,如果您有更新版本的autoconf,那麼 將被正確擴展。

-1

我能想到的幾個原因,這種情況發生。 首先,「Boost」是一個非常流行的C++編程框架。

  1. 該項目
  2. 您沒有安裝依賴權
  3. 該項目是不是與你的分配兼容的錯誤(編譯錯誤)。存儲庫中的軟件包可能已過時,因此它是Fedora中最新的,但不是最新的真正的Boost軟件包。如果是這樣的話,Fedora用戶會更適合說。
  4. 一些你的依賴被損壞
  5. 你沒有按照說明正確