• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[CMake] Problem z dołączania statycznej biblioteki

42 Warsaw Coding Academy
0 głosów
293 wizyt
pytanie zadane 17 kwietnia 2018 w C i C++ przez Mateusz Tocha Bywalec (2,560 p.)

Dzisiaj zaktualizowałem CMake na wersje 3,10

find_library funkcja przestała działać jak wcześniej działała.

poprzednio używałem jej w nastepujący sposób:

find_library(GLEW glew32 C:/msys64/mingw64/lib/)

a nastepnie można było dołaczyć do programu

target_link_libraries(One_Triangle GLEW32)

 

Sprawdzałem zmienną 

message("------${GLFW3} ------------")

zwraca ------GLFW3-NOTFOUND -------------

Próbowałem

 find_library(GLFW NAMES libglfw3.a PATHS C:/msys64/mingw64/lib/libglfw3)

to samo

jeżeli jednak zrobie tak:

target_link_libraries(One_Triangle libglfw3.a) 

to działa.

 

Z tego co czytałem "Modern way" w CMake > 3.6 należy dodawać w taki sposób:

add_library(OPENGL STATIC IMPORTED)
set_target_properties(OPENGL PROPERTIES
  IMPORTED_LOCATION "C:/msys64/usr/lib/w32api/libopengl32.a"  
)

i potem

target_link_libraries(One_Triangle OPENGL)

to działa tylko dla biblioteki : libopengl32.a gdy chciałem powtórzyć to z libglfw3.a oraz libglew32.a nie może odnaleźć referencji. 

CAŁOŚĆ:

cmake_minimum_required(VERSION 3.0.0)
project(One_Triangle VERSION 0.0.0)

include(CTest)

include_directories(C:/msys64/mingw64/include)
include_directories(/src)
include_directories(/src/vendor/stb_image)
include_directories(/src/vendor/glm)

link_directories(C:/msys64/usr/lib/w32api/)
link_directories(C:/msys64/mingw64/lib/)

add_library(OPENGL STATIC IMPORTED)
set_target_properties(OPENGL PROPERTIES
  IMPORTED_LOCATION "C:/msys64/usr/lib/w32api/libopengl32.a"  
)
# find_library(OPENGL opengl32)
 find_library(GLFW NAMES libglfw3.a PATHS C:/msys64/mingw64/lib/libglfw3)
# find_library(GLEW glew32 C:/msys64/mingw64/lib/)


add_definitions(-DGLEW_STATIC)
add_definitions(-D_WIN32=1)
add_definitions(-Dfpermissive)


set(SOURCE_DIR src/)
set(SOURCE 
${SOURCE_DIR}VertexBuffer.cpp
${SOURCE_DIR}IndexBuffer.cpp
${SOURCE_DIR}VertexArray.cpp
${SOURCE_DIR}VertexBufferLayout.cpp
${SOURCE_DIR}Shader.cpp
${SOURCE_DIR}Renderer.cpp
${SOURCE_DIR}DisplayManager.cpp
${SOURCE_DIR}RawModel.cpp
${SOURCE_DIR}Loader.cpp
${SOURCE_DIR}vendor/stb_image/stb_image.cpp
${SOURCE_DIR}Texture.cpp
${SOURCE_DIR}TexturedModel.cpp
${SOURCE_DIR}ResourceManager.cpp
${SOURCE_DIR}LineSegment.cpp
${SOURCE_DIR}Grid.cpp
${SOURCE_DIR}TextureWrapper.cpp
${SOURCE_DIR}EventDispatcher.cpp
${SOURCE_DIR}TimerListener.cpp
${SOURCE_DIR}Timer.cpp
)

# ${OPENGL} ${GLFW3} ${GLEW}
add_executable(One_Triangle main.cpp ${SOURCE})
# message("======${OPENGL} ===========")
# message("------${GLFW3} ------------")
# message("------${GLEW} -------------")
target_link_libraries(One_Triangle libglfw3.a)
target_link_libraries(One_Triangle OPENGL)
target_link_libraries(One_Triangle libglew32.a)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

Proszę o każdą podpowiedź

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
2 odpowiedzi 666 wizyt
pytanie zadane 22 października 2016 w C i C++ przez Munvik Dyskutant (9,350 p.)
0 głosów
0 odpowiedzi 442 wizyt
pytanie zadane 11 stycznia 2023 w Python przez Mixteraks Początkujący (360 p.)
0 głosów
0 odpowiedzi 753 wizyt
pytanie zadane 29 lipca 2021 w C i C++ przez wokiap Nowicjusz (240 p.)

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,740 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...