Хотите сделать отдельную программу с помощью cmake - PullRequest
4 голосов
/ 18 августа 2011

Моя программа использует библиотеку giblib и Imlib2, и она построена с помощью cmake.

Она отлично работает на моем компьютере, но не на другом.моя программа нуждается, а другие нет.

Моя цель - создать отдельную программу. (не нужно устанавливать никакую другую библиотеку дополнительно)

Что мне добавить в файл cmake?


исходный код projectDef.cmake

file (GLOB PLATFORM RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
    X11/[^.]*.cpp
    X11/[^.]*.h
    X11/[^.]*.cmake
    )

SOURCE_GROUP(X11 FILES ${PLATFORM})

add_definitions(
)

set (SOURCES
    ${SOURCES}
    ${PLATFORM}
    )

add_x11_plugin(${PROJECT_NAME} SOURCES)

target_link_libraries(${PROJECT_NAME}
    ${PLUGIN_INTERNAL_DEPS}
    )

include_directories(/usr/include/giblib)
include_directories(/usr/include/X11)

target_link_libraries(MyProject X11)
target_link_libraries(MyProject Imlib2)
target_link_libraries(MyProject giblib)

Исходный код CMakeList.txt

cmake_minimum_required (VERSION 2.6)
set (CMAKE_BACKWARDS_COMPATIBILITY 2.6)
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_EXE_LINKER_FLAGS "-static")

Project(${PLUGIN_NAME})

file (GLOB GENERAL RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
    [^.]*.cpp
    [^.]*.h
    [^.]*.cmake
    )

include_directories(${PLUGIN_INCLUDE_DIRS})


SET_SOURCE_FILES_PROPERTIES(
    ${GENERATED}
    PROPERTIES
        GENERATED 1
    )

SOURCE_GROUP(Generated FILES
    ${GENERATED}
    )

SET( SOURCES
    ${GENERAL}
    ${GENERATED}
    )

include_platform()

1 Ответ

1 голос
/ 18 августа 2011

Попробуйте начать с этими параметрами в своем корневом файле CMakeLists.txt:

set(BUILD_SHARED_LIBS OFF)
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-static")

BUILD_SHARED_LIBS необходимо только в том случае, если в вашем проекте есть собственные библиотеки ( add_library ).

С флагом компоновщика -static вам также понадобятся статические библиотеки для всех ваших дополнительных библиотек!Одна из распространенных проблем при статическом связывании - избегать циклических зависимостей .

...