6

Macos の場合、何らかのフレームワークにリンクしたいと思います。Windowsで、いくつかのライブラリにリンクしたいと思います。

たとえば、OpenGL フレームワーク、cmake を使用してこの要件を表現するにはどうすればよいですか?

4

4 に答える 4

2

OpenGL にリンクすることを CMake に伝えるには、以下を .xml に追加しますCMakeLists.txt

find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
target_link_libraries(<your program name> ${OPENGL_LIBRARIES})

find_packageOpenGL を探し、いくつかの OPENGL* 変数を設定することで OpenGL がどこにあるかをスクリプトの残りの部分に伝えます。include_directoriesOpenGL ヘッダーの場所をコンパイラに指示します。target_link_librariesCMake に OpenGL でリンクするように指示します。

次のコードは、オペレーティング システムに基づいてさまざまなアクションを実行します。

if(WIN32)
    #Windows specific code
elseif(APPLE)
    #OSX specific code
endif()
于 2014-12-21T04:05:02.433 に答える
1

次のマクロ コードを試すことができます。

macro(ADD_OSX_FRAMEWORK fwname target)
    find_library(FRAMEWORK_${fwname}
    NAMES ${fwname}
    PATHS ${CMAKE_OSX_SYSROOT}/System/Library
    PATH_SUFFIXES Frameworks
    NO_DEFAULT_PATH)
    if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
        MESSAGE(ERROR ": Framework ${fwname} not found")
    else()
        TARGET_LINK_LIBRARIES(${target} PUBLIC "${FRAMEWORK_${fwname}}/${fwname}")
        MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
    endif()
endmacro(ADD_OSX_FRAMEWORK)

ADD_OSX_FRAMEWORK(Foundation ${YOUR_TARGET}) # Add the foundation OSX Framework

このサンプルコードはこちらにあります

于 2014-12-22T09:02:00.550 に答える