CMake сгенерировал проект VS, ожидающий lib вместо dll - PullRequest
0 голосов
/ 03 декабря 2018

Вот мой минимальный пример ниже: https://www.dropbox.com/s/7fwsr3sigb60rtw/leveling-test.zip?dl=0

Моя текущая структура папок проекта и соответствующее содержимое CMakeLists:

leveling
├── CMakeLists.txt: add_subdirectory(deps) 
└── deps
    ├── CMakeLists.txt: add_subdirectory(xml-reading)
    └── xml-reading
        ├── CMakeLists.txt: add_subdirectory(deps)
        │                   add_library(xml-reading ...)
        │                   target_include_directories(xml-reading PUBLIC ${CMAKE_CURRENT_LIST_DIR}/deps/tinyxml2)
        │                   target_link_libraries(xml-reading PUBLIC tinyxml2)
        └── deps
            ├── CMakeLists.txt: add_subdirectory(tinyxml2)
            └── tinyxml2

это генерирует файл xml-reading.dll.

Но тогда параметры компоновщика проекта уровня имеют /DYNAMICBASE "bin\windows-32\debug\xml-reading.lib" "bin\windows-32\debug\BOBPrimitives.lib" "bin\windows-32\debug\tinyxml2d.lib"

Что дает: 2>LINK : fatal error LNK1104: cannot open file 'bin\windows-32\debug\xml-reading.lib'

Что случилось?

  • Я попытался добавитьСовместно с add_library(xml-reading SHARED ...), не помогло
  • В качестве обходного пути я установил STATIC на add_library(xml-reading STATIC ...), чтобы заставить его создавать файл .lib - , но я хотел бы понять, что происходит
...