C++ 64-битный проект со статической библиотекой PDCurses через CMake от Clion

Недавно я приобрел "curses.h" и создал файл библиотеки PDCurses "pdcurses.a" благодаря: https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-pdcurses пакету. Я также подготовил файлы cmake:

# pdcurses-config.cmake
set(PDCURSES_LIBDIR "${PROJECT_SOURCE_DIR}/lib")
set(PDCURSES_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/include")
set(PDCURSES_LIBRARIES "-L${PDCURSES_LIBDIR} -lpdcurses -static -Wall -Werror")
string(STRIP "${PDCURSES_LIBRARIES}" PDCURSES_LIBRARIES)



# CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(MatrixAlgebra)

set(CMAKE_CXX_STANDARD 11)

set(PDCURSES_DIR "${PROJECT_SOURCE_DIR}/cmake")
find_package(PDCURSES REQUIRED)
include_directories(${PDCURSES_INCLUDE_DIRS})


set(SOURCE_FILES src/main.cpp)
add_executable(MatrixAlgebra ${SOURCE_FILES})
target_link_libraries(MatrixAlgebra ${PDCURSES_LIBRARIES})

К сожалению, я не могу связать простой "Hello World!" консольная программа, потому что либо я получаю это:

mingw32 / 7.3.0 /../../../../ x86_64-w64-mingw32 / bin / ld.exe: не удается найти -lpdcurses collect2.exe: ошибка: ld вернул 1 состояние выхода mingw32-make.exe [3]: * [CMakeFiles \ MatrixAlgebra.dir \ build.make: 97: MatrixAlgebra.exe] Ошибка 1 mingw32-make.exe [2]: [CMakeFiles \ Makefile2: 67: CMakeFiles / MatrixAlgebra.dir / all] Ошибка 2 mingw32-make.exe [1]: [CMakeFiles \ Makefile2: 79: CMakeFiles / MatrixAlgebra.dir / rule] Ошибка 2 mingw32-make.exe: * [Makefile: 117: MatrixAlgebra] Ошибка 2

или это (когда я меняю "pdcurses.a" на "libpdcurses.a"):

Процесс завершен с кодом выхода -1073741515 (0xC0000135)

Я просто не знаю, что делать, чтобы все прошло без проблем.

1 ответ

Вы не должны обращаться к target_link_libraries() как к командной строке, чтобы передать его такими параметрами, как -Wall

Я не знаю pdcurses, но когда find_package находит эту библиотеку, вам, вероятно, следует использовать что-то вроде:

target_link_libraries(MatrixAlgebra pdcurses::pdcurses)
Другие вопросы по тегам