Patří sem problémy při používání cmake s Gnu na projektu Qt

hlasů
1

Jsem začínající multiplatformní (Win XP, Linux) qt projektu. Chci používat out zdrojového stavět, takže moje adresářová struktura je jak následuje:

project/
  CMakeLists.txt   (global CMake file, includes other CMakeLists)
  build/           (my build directory)
  libA/
    CMakeLists.txt
  mystuff/
    subprojectA/
      CMakeLists.txt
    subprojectB/
      CMakeLists.txt

Takže když jsem se ji využít v systému Windows pomocí Visual Studio generátoru vše staví v pořádku. Mám-li použít stejnou strukturu a CMakeLists na Linuxu nebo pod Windows s generátorem MinGW mám chyby kompilace, protože qt generované soubory (přes MOC a UIC), ležící pod sestavení seznamu nemohou najít své hlavičkové soubory v mých podprojektů. Některé z qt generované záhlaví / zdrojové soubory jsou závislé na mé hlavě / zdrojové soubory, protože jsem použít podporoval widgety v mých .ui soubory, které poukazují na implementaci ve svém zdroji. Opět pod Visual Studio / nmake vše sestavuje v pořádku.

Jako náhradní řešení mohu použít ve zdrojovém verzi, která běží v pohodě, nebo mohu přidat následující na globální CMakeLists.txt:

include_directories(
  mystuff/subprojectA
  mystuff/subprojectB
)

Ale co je tím správným řešením? Děkuji mnohokrát!!

Položena 25/08/2009 v 14:50
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Mám podobný problém, se zahrnuje pro ze zdroje vychází z UNIX (i když jsem nepoužívají QT), a v každém provádí za předpokládané I zní:

include_directories( . )

Není nejelegantnější, ale jsem pracoval pro mě.

Odpovězeno 25/08/2009 v 17:52
zdroj uživatelem

hlasů
1

V rámci projektu jsem pracoval na Já používám toto prohlášení ke zpracování zahrnuje podle mého CMakeLists.txt:

 include_directories(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDES} ${OPENSSL_INCLUDE_DIR})

Klíčové slovo je $ {} CMAKE_CURRENT_BINARY_DIR, naděje, který pomáhá.

Boční poznámka, pokud používáte gcc 4.4.x s výjimkami povolenými, možná budete chtít používat to tak, že by na ně odkazovat proti libgcc_s_sjlj-1.dll na oknech.

 SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-static-libgcc")
Odpovězeno 16/11/2009 v 22:46
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more