Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmake-安装树外共享库_Cmake - Fatal编程技术网

cmake-安装树外共享库

cmake-安装树外共享库,cmake,Cmake,我有一个项目我正在建设-新的cmake我 我有一系列的可执行文件,这些文件需要打包,以便使用electron应用程序进行分发。现在,我需要他们前往一个bin和lib目录,在所有可执行文件中,RPATH设置为@executable\u path/./lib,这样它就可以在我将分发的包中找到所需的共享库 这是我的CMakeLists.txt 我不确定的是如何确保所有必需的共享库找到正确的位置。现在我使用的是一个'dist/bin'和'dist/lib'目录,它将保存可执行文件和共享库 可执行文件正在

我有一个项目我正在建设-新的cmake我

我有一系列的可执行文件,这些文件需要打包,以便使用electron应用程序进行分发。现在,我需要他们前往一个bin和lib目录,在所有可执行文件中,RPATH设置为@executable\u path/./lib,这样它就可以在我将分发的包中找到所需的共享库

这是我的CMakeLists.txt

我不确定的是如何确保所有必需的共享库找到正确的位置。现在我使用的是一个'dist/bin'和'dist/lib'目录,它将保存可执行文件和共享库

可执行文件正在找到到bin目录的路径,但没有库。没有一个LIB是在树中构建的-它们是预构建的,或者正在链接,或者我正在使用“find_package”命令

cmake新手,因此不确定如何继续


option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)

set(CMAKE_INSTALL_PREFIX "/Volumes/Data-4TB-2020/Users/mark/Development/c/wtools/dist/")

set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH "@executable_path/../lib")

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake/")

find_package(sndfile REQUIRED PATHS ~/Development/Libraries)
find_package(portaudio REQUIRED PATHS ~/Development/c/pa)
find_package(SampleRate REQUIRED PATHS /usr/local/lib)
find_package(jansson REQUIRED)
find_package(LibXml2 REQUIRED)

set(asrv_sources asrv.c log.c pa_ringbuffer.c asrv_pl.c asrv_meters.c asrv_msgs.c asrv_net.c asrv_taudio.c asrv_control.c asrv_queue_meters.c asrv_outmsg.c)
list(TRANSFORM asrv_sources PREPEND "src/")
add_executable(asrv ${asrv_sources})
target_link_libraries(asrv sndfile jansson portaudio)

set(lics_sources licensing.cc license-manager-key-register.cc)
list(TRANSFORM lics_sources PREPEND "src/")
add_library (lics STATIC ${lics_sources})

add_executable(cstdin src/cstdin.c)
target_link_libraries(cstdin jansson)

set(cutter_sources cutter.c chunks.c ixml.c log.c trimws.c wtwavout.c wtlink.c wtlayer.c wtwavin.c wtinplug.c pa_ringbuffer.c cstatus.c wtutil.c)
list(TRANSFORM cutter_sources PREPEND "src/")
add_executable(cutter ${cutter_sources})
target_link_libraries(cutter PRIVATE lics sndfile jansson ${LIBXML2_LIBRARIES} SampleRate licensepp)

set(ltccut_sources ltccut.c log.c trimws.c)
list(TRANSFORM ltccut_sources PREPEND "src/")
add_executable(ltccut ${ltccut_sources})
target_link_libraries(ltccut sndfile jansson)

add_executable(ltcstripe src/ltcstripe.c src/log.c)
target_link_libraries(ltcstripe sndfile jansson ltc timecode)

add_executable(ltcscan src/ltcscan.c src/log.c src/trimws.c src/writeedl.c)
target_link_libraries(ltcscan sndfile jansson ltc timecode)

add_executable(wavcon src/wavcon.c src/log.c src/ixml.c src/chunks.c src/trimws.c)
target_link_libraries(wavcon sndfile jansson xml2)

add_executable(findex src/findex.c src/log.c src/ixml.c src/chunks.c src/trimws.c)
target_link_libraries(findex sndfile jansson xml2)

add_executable(licman src/licman.cc src/license-manager-key-register.cc)
target_link_libraries(licman licensepp)

set (tgts asrv licman findex wavcon ltcscan ltcstripe ltccut cutter)
set (libs sndfile jansson xml2 licenspp ltc timecode)

include(InstallRequiredSystemLibraries)

include(CPack)

install(TARGETS ${tgts}
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})