Свяжите файл .a с CMake, используя компилятор VS 2013 - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть следующее дерево файлов:

   C:.
    │   CMakeLists.txt
    │   myLibraryHeader.h
    │   test.c
    │
    └───myLib
        ├───win32
        │       myLibrary.a
        │
        └───win64
                myLibrary.a

И следующий файл CMake:

cmake_minimum_required(VERSION 2.8)
project(myProject)
link_directories(myLib/win32) 
add_executable(main test.c)
target_link_libraries(main myLib/win32/myLibrary.a)

myLibraryHeader.h - заголовок, а реализация находится в файлах .a. test.c использует функции, объявленные в myLibraryHeader.h.

Однако, когда я пытаюсь скомпилировать его с помощью компилятора VS2013, я получаю эту ошибку:

Error   1   error LNK1104: cannot open file 'myLibrary.lib'

По какой причине VS ищет файл .lib вместо файла .a?

Как это можно исправить?

1 Ответ

0 голосов
/ 05 сентября 2018

Попробуйте следующее:

unset(CMAKE_LINK_LIBRARY_SUFFIX)

Но учтите, что это повлияет на любое имя библиотеки, переданное в target_link_libraries с этой строки.

...