2011-07-05 11 views
1

私はライブラリを開発しており、4.1.2でコンパイルされていることを確認する必要があります(私は喜んでいません)。 Fedora 14マシンでGCC41をダウンロード、コンパイル、インストールしました。CMakeとGCCを使ってstdC++にリンクする4.1.2

今CMakeのではIのみ変更する変数に次の CMAKE_CXX_COMPILER =は/ opt/gcc41/binに/ C++ 41 CMAKE_C_COMPILER =は/ opt/gcc41/binに/ gcc41

それは罰金コンパイルが、それはそうです間違ったバージョンの標準ライブラリを使用する私はこのようになり得るエラー(秒):

/opt/gcc41/bin/c++41 -Wall -Wold-style-cast -Wsign-compare -Wnon-virtual-dtor -Woverloaded-virtual -Wno-long-long -Wno-old-style-cast -g3 -O2 -ffast-math -mmmx -msse -msse2 -msse3 <OBJECT_FILES> -o <EXE_NAME> -rdynamic -lfreeimage -lcxcore -lcv -lml -lhighgui -lcvaux -llapack -lpthread -ltiff -lSM -lICE -lX11 -lXext -lrt -lz -ldl -ltiff -lSM -lICE -lX11 -lXext -lrt -lz -ldl -lusb 


In function `operator<< <std::char_traits<char> >': 
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/../../../../include/c++/4.5.1/ostream:513: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)' 

は、どうやらそれは、から... /含める/ C++/4.5.1 /に引っ張るが、私は、ライブラリのバージョンにそれを見ることができませんへのリンク。

これを制御する方法はありますか?

答えて

2

あなたはCMakeので設定する場合は、あなたが最初に設定前に、コンパイラを指定します。 CおよびC++コンパイラを指定するには、環境変数CCおよびCXXを使用してください:クリーン/空のビルドツリーと

export CC=/opt/gcc41/bin/gcc41 
export CXX=/opt/gcc41/bin/c++41 
cmake ../source 
make 

スタートCMakeのを別のコンパイラで実行された最初の時点から、古いキャッシュエントリを避けるために。 (新しいCMakeを起動せずに最初のCMakeを実行した後でコンパイラを変更することはできません...)

0

あなたのgccのバージョンがFedoraのデフォルトにしてください:

./configure CC=/path/to/gcc/of/your/choice 
関連する問題