2012-04-06 42 views
3

と互換性がありません:CMake; 386:入力ファイル(..)のx86-64のアーキテクチャ私は最初の「cmakeのビルド」を実行するときにこのエラーを取得し、「作る」のi386出力

/usr/bin/ld: i386:x86-64 architecture of input file `CMakeFiles/eperftool.dir/mp4reader.o' is incompatible with i386 output 
/usr/bin/ld: i386:x86-64 architecture of input file `CMakeFiles/eperftool.dir/codec_instance_mgmt.o' is incompatible with i386 output 
/usr/bin/ld: i386:x86-64 architecture of input file `CMakeFiles/eperftool.dir/callbacks.o' is incompatible with i386 output 
(...)" 

これは私のフォーマットでありますメイクファイル:

file (GLOB eperftool_sources ./*) 

set(EPERFTOOL_BIN ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}/eperftool CACHE STRING "eperftool dir") 
add_executable(eperftool ${eperftool_sources}) 


find_package (Threads) 
if (Threads_FOUND) 
    include_directories(${Threads_INCLUDE_DIRS}) 
endif (Threads_FOUND) 

target_link_libraries(eperftool openfec m) 

target_link_libraries(eperftool ${CMAKE_THREAD_LIBS_INIT}) 

set(CMAKE_SHARED_LINKER_FLAGS "-m32")" 

が、私は問題をグーグルで、それを解決するためにリンカフラグ「-m32」を追加した人を発見した後、最終的なライン「を設定(CMAKE_SHARED_LINKER_FLAGS 『-m32を』)」追加しかし、それは私の問題を解決しませんでした。

問題を解決するにはどうすればよいですか?

ありがとうございます!

答えて

2

私は、あなたのシステムに互換性の問題を引き起こしているどこか(あなたのシステムでコンパイルされていない)からオブジェクトファイルmp4reader.o, codec_instance_mgmt.o and callbacks.oをコピーしたと思います。

rm *.o 

し、再度コンパイルします。 あなたはすべてのオブジェクトを削除して、もう一度それをコンパイルしようとすることができます。

+0

私は 'cmake build clean .. && cmake build .. && make'というコマンドを実行します。 私は別のUbuntuをインストールしていて、うまくコンパイルできました。 Ubuntuが動作を停止したため、Windows Installerを使用して再度インストールし、古いシステムからファイルをコピーしました。 –

+0

古いオブジェクトファイルを削除しようとしましたか? –

+0

助けてくれてありがとう! ビルドディレクトリを削除してもう一度ビルドしました。今それは働いています。 素敵な週末を過ごしましょう! /アンダース –

関連する問題