2011-07-08 10 views
1

昨日私はQt4 Opensource library for linuxをダウンロードしました。コンパイルエラー:「-lQtCore4が見つかりません」

./configure 
./make 
./make install 

を実行していると私の.bashrcファイルにこれを挿入した後:

PATH=/usr/local/TrollTech/Qt-4.7.3/bin:$PATH 
export PATH 

この後、私は私のためにMakefileを生成するためにcmakeのを走りました。 CMakeLists.txt:

project(VTKToVTFx) 

cmake_minimum_required(VERSION 2.6) 

find_package(VTK REQUIRED) 
find_package(Qt4 REQUIRED) 

include(${VTK_USE_FILE}) 
include(${QT_USE_FILE}) 

SET(VTK_TO_VTFX_FORMS main.ui) 
QT4_WRAP_UI(VTK_TO_VTFX_FORMS_UIC ${VTK_TO_VTFX_FORMS}) 

SET(MOC_HEADERS VTKToVTFx.h) 
qt4_wrap_cpp(MOC_OUTFILES ${MOC_HEADERS}) 

SET(CPP_SOURCES VTKToVTFx.cpp 
       VTKPatch.cpp 
       VTKFile.cpp 
       VTKData.cpp 
       VTKDataHolder.cpp 
       ) 

add_executable(VTKToVTFx ${CPP_SOURCES} ${VTK_TO_VTFX_FORMS_UIC} ${MOC_OUTFILES}) 

# Adds folders for Visual Studio solution explorer (and for Xcode explorer) 
source_group("Generated"   FILES ${MOC_FILES_CPP} ${VTK_TO_VTFX_FORMS_UIC} ${QRC_FILES_CPP} ${MOC_OUTFILES}) 

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) 

target_link_libraries(VTKToVTFx vtkHybrid) 
target_link_libraries(VTKToVTFx QtCore4) 
target_link_libraries(VTKToVTFx QtGUI4) 

このCMakeLists.txtは、Windows上で完璧にうまく動作しますが、私はUbuntuでの私のインストールに出力をコンパイルしようとすると、このエラーが発生します。指し示すことができ

/usr/bin/ld: cannot find -lQtCore4 
/usr/bin/ld: cannot find -lQtGUI4 

誰でも私の問題はここに?

+0

スラッシュ?バックスラッシュ? Linux? Windows? –

+0

申し訳ありませんが、正しいスラッシュを使用しましたが、ここで間違って書いています。私は上記の投稿を更新しました。私はUbuntu 11.04を使用しています。 –

+0

[既存のパッケージ](http://packages.ubuntu.com/natty/libqt4-dev)を使用しない理由は何ですか? – sehe

答えて

3

UNIXのような世界では、スラッシュはパスセパレータであり、バックスラッシュではありません。

\usr\local\TrollTech\Qt-4.7.3\binは、usrlocalTrollTechQt-4.7.3binと評価されます。

編集:また、あなたのCMakeLists.txtは少し汚れているようです。 http://qtnode.net/wiki/Qt4_with_cmakeをご覧ください。代わりに

target_link_libraries(VTKToVTFx QtCore4) 

使用のような何か(ソースがリンクサイトです):


  • To add support for Qt4 libraries like network or qttest, you need to add both the include files and corresponding libraries. For example, to add support for the network and qttest libraries, you can use:
INCLUDE_DIRECTORIES(
    ${QT_INCLUDE_DIR} 
    ${QT_QTNETWORK_INCLUDE_DIR} 
    ${QT_QTTEST_INCLUDE_DIR} 
) 

TARGET_LINK_LIBRARIES(
    ${QT_LIBRARIES} 
    ${QT_QTNETWORK_LIBRARIES} 
    ${QT_QTTEST_LIBRARIES} 
) 

でもリリース4.xのライン内、ライブラリの名前が変更されました名前が変更されます。幸運にもハードコーディングの必要はありません:)

+0

申し訳ありませんが、正しいスラッシュを使用しましたが、ここで間違って書いています。私は上記の投稿を更新しました。 –

+0

@Steinarリマ:私は自分の答えを編集しました。 –

+0

ありがとう、これはトリックでした!驚くばかり! :) –

関連する問題