На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Статическая сборка cmake, linux, gcc
    Всем привет :)

    Значится есть такой-вот файлик:
    ExpandedWrap disabled
      cmake_minimum_required (VERSION 2.8)
       
      project(msck)
       
      include_directories(${CMAKE_CURRENT_SOURCE_DIR})
      include_directories("${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/rapidjson/include")
       
      set(Boost_USE_STATIC_LIBS ON)
      find_package(Boost COMPONENTS program_options system)
      if(Boost_FOUND)
          include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
      else()
          message( FATAL_ERROR "Unable to find Boost libraries" )
      endif()
       
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -pedantic -Wall -Werror -g -O3 ")
       
      if (NOT APPLE)
          set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -pthread")
      endif()
       
      add_subdirectory(worker)
      add_subdirectory(checker)
      add_subdirectory(stat)
      add_subdirectory(conf)
       
      add_executable(msck
              main.cc
              workerpool.cc
      )
       
      target_link_libraries (msck worker checker stat conf ${Boost_LIBRARIES})


    Собираем, получаем на выходе динамический бинарь.

    Запускаем VERBOSE=1 и видим
    ExpandedWrap disabled
      /usr/bin/c++    -std=c++14 -pedantic -Wall -Werror -g -O3    -static -pthread CMakeFiles/msck.dir/main.cc.o CMakeFiles/msck.dir/workerpool.cc.o  -o msck -rdynamic worker/libworker.a checker/libchecker.a stat/libstat.a conf/libconf.a -Wl,-Bstatic -lboost_program_options -lboost_system -Wl,-Bdynamic


    Убираем в конце " -Wl,-Bdynamic" и получаем, как хотелось, статический. Вопрос: как указать cmake-ом чтоб не добавлял в конце такую бяку?
      Думаю, что через get_target_properties для проперти CMAKE_LINK_FLAGS (или как она там), потом через for each по полученному списку, выкинуть "бяку" и сделать set_target_properties обратно.
      Сообщение отредактировано: Flex Ferrum -
        ExpandedWrap disabled
          get_property(T GLOBAL PROPERTY LINK_FLAGS)
          message("this is T: ${T}")

        ExpandedWrap disabled
          get_target_property(T msck LINK_FLAGS)
          message("this is T: ${T}")


        В первом случае - пусто, во втором "NOTFOUND" :unsure:
        Сообщение отредактировано: negram -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0246 ]   [ 17 queries used ]   [ Generated: 29.03.24, 14:28 GMT ]