CMake ошибки при создании цели - PullRequest
0 голосов
/ 22 января 2020

Я использую cmake-3.4.0 на Windows. У меня есть базовое понимание cmake. Я пытаюсь собрать два целевых исполняемых файла в папке с именем util\. Я намерен скомпилировать два исходных файла util\celtenc.c и util\celtdec.c и связать два созданных объектных файла (celten c. c .obj и celtde c. c .obj) со stati * 1032. * lib: libcelt-0.0.0-sb-None-hexagon.a и создайте две цели celt_Enc и celt_Dec.

Ниже моя util\CMakeLists.txt. Я пробовал разные вещи, но не удалось построить две цели.

Случай 1] Когда я отключаю строку SET( CMAKE_C_FLAGS "" CACHE INTERNAL "") Он берет мой CMAKE_C_FLAGS набор в CMakeLists.txt верхнего уровня и выдает ошибку: linker option neglected и исполняемый файл не создается, хотя создаются два соответствующих *. c .obj файла.

Случай 2] Поэтому, чтобы отключить / сбросить мой предыдущий CMAKE_C_FLAGS, я добавляю оператор, как показано ниже:

SET( CMAKE_C_FLAGS  "" CACHE INTERNAL "")

тогда он жалуется и выдает ошибку о недействительном namespec -l libcelt-0.0.0-sb-None-hexagon.a

Чего мне не хватает? Как я могу изменить этот CMakeLists.txt, чтобы скомпилировать два вышеупомянутых исходных файла *. c и связать их, чтобы получить две исполняемые цели?

if ("${TARGET_ARCH}" MATCHES "hexagon") 

     add_executable ( celt_Enc celtenc.c  )
     target_link_libraries(celt_Enc libcelt-0.0.0-sb-None-hexagon.a  )

     add_executable ( celt_Dec celtdec.c )
     target_link_libraries(celt_Dec libcelt-0.0.0-sb-None-hexagon.a   )  
     SET_TARGET_PROPERTIES( celt_Dec  PROPERTIES CMAKE_EXE_LINKER_FLAGS "-v  -L ..\ -llibcelt-0.0.0-sb-None-hexagon.a -lhexagon")

    SET( CMAKE_C_FLAGS  "" CACHE INTERNAL "")

    #SET( CMAKE_EXE_LINKER_FLAGS  "-mv66 -O3 -v " CACHE INTERNAL "")

else()
    message( STATUS "Setting Non-Hexagon target link libraries." )
    target_link_libraries ( celt_Enc ${CELT_SHARED_LIB_NAME} )
endif()                                                                                                          

if(WIN32)
  set_target_properties( celt_Enc PROPERTIES LINK_FLAGS "/INCREMENTAL:NO" )
  set_target_properties( celt_Dec PROPERTIES LINK_FLAGS "/INCREMENTAL:NO" )
endif()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...