Cmake on Windows doesn't add shared library paths (works on linux)

后端 未结 3 655
[愿得一人]
[愿得一人] 2021-01-12 08:52

I\'ve been using CMake and Eclipse on linux for a while and have been working with multiple target projects containing numerous executables and shared objects.

I use

3条回答
  •  无人及你
    2021-01-12 09:21

    Thanks everyone for question and responses. I want just to summarize what you need to for windows support:

    Please add the following code to root CMakeLists.txt:

    # Common output directory is required for OS without rpath support.
    set (CMAKE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/result")
    set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_OUTPUT_DIRECTORY})
    set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_OUTPUT_DIRECTORY})
    set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_OUTPUT_DIRECTORY})
    

    Than you need to add working directory for every add_test:

    add_test (
      NAME ${TEST_NAME}
      COMMAND ${TEST_TARGET}
      WORKING_DIRECTORY ${CMAKE_OUTPUT_DIRECTORY}
    )
    

    Please be aware that TEST_TARGET should be unique inside current project.

    I've added windows support for lzws library using this method. You can always checkout source code and clarify remaining question.

提交回复
热议问题