Поиск источника имени файла LNK1104

Я работаю в проекте Visual Studio, который был создан с помощью CMake, и по какой-то причине я получаю ошибку LNK1104 при сборке, в которой говорится, что «не удается открыть файл 'hboost_python27-vc142-mt-x64-1_72.lib'», и я знаю, что факт , что этот файл не существует нигде , и что правильная зависимость является «hboost_python27-мт-x64.lib.» Так почему Visual Studio запрашивает этот файл? Как мне определить, откуда взялось это имя файла, и затем исправить его? Это больше проблема CMake? Или проблема с Visual Studio?

Для справки, я компилирую специальный преобразователь активов USD для Houdini, и вот код, над которым я работал https://github.com/mwalk176/USD-Custom-Resolver-Windows-Example/tree/main/custom_resolver/ проект

1 ответ

Я думаю, что у вас на компьютере установлена ​​довольно старая версия Boost, начиная с самых последних версий Boost, это стандартный способ написать более подробный синтаксис, например, так что это правильно.

Попробуйте загрузить Boost 1.72 отсюда или, если ваш код совместим с более поздними версиями Boost, лучше скачать последнюю версию 1.78 прямо сейчас.

В противном случае в вашей файловой системе скопируйте файл в hboost_python27-vc142-mt-x64-1_72.libили сделать жесткую ссылку Windows. Таким образом, он будет найден при компиляции.

Другой вариант заключается в том, что вы изменяете свой текущий код

      #pragma comment(lib, HBOOST_LIB_PREFIX HBOOST_STRINGIZE(HBOOST_LIB_NAME) "-" \
    HBOOST_LIB_TOOLSET HBOOST_LIB_THREAD_OPT HBOOST_LIB_RT_OPT \
    HBOOST_LIB_ARCH_AND_MODEL_OPT "-" HBOOST_LIB_VERSION ".lib")

к более короткой версии:

      #pragma comment(lib, HBOOST_LIB_PREFIX HBOOST_STRINGIZE(HBOOST_LIB_NAME) "-" \
    HBOOST_LIB_THREAD_OPT HBOOST_LIB_RT_OPT HBOOST_LIB_ARCH_AND_MODEL_OPT ".lib")

после этого изменения этот код прагмы создаст ожидаемое имя файла hboost_python27-mt-x64.lib.

Другие вопросы по тегам