【发布时间】:2017-07-08 18:52:32
【问题描述】:
我在 CLion 中将外部库添加到我的项目时遇到了一些问题,我发现的有关该主题的所有内容并没有真正让我进一步了解。
我添加了这些文件:
include/curses.h
include/panel.h
lib/pdcurses.lib
cmake-build-debug/pdcurses.dll
我还将这些文件添加到了我的 MinGW 文件夹中,以防有人在查看...是的,我迷路了。
我的 CMakeLists.txt 必须如何查找这个?尝试了很多,但由于我对 cmake 真的一无所知,所以我无法让它工作。
目前是这样的
cmake_minimum_required(VERSION 3.6)
project(113_curses)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lpdcurses")
set(SOURCE_FILES main.cpp)
add_executable(113_curses ${SOURCE_FILES})
include_directories(${MY_SOURCE_DIR}/include)
link_directories(${MY_SOURCE_DIR}/lib)
target_link_libraries(113_curses pdcurses.lib)
错误
[ 50%] Linking CXX executable 113_curses.exe
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../lib/pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../lib/pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../lib\pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../..\pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../lib/pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../lib/pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../lib\pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../..\pdcurses.lib when searching for -lpdcurses
C:/Tools/mingw-w64/x86_64-6.3.0-win32-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lpdcurses
collect2.exe: error: ld returned 1 exit status
CMakeFiles\113_curses.dir\build.make:96: recipe for target '113_curses.exe' failed
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/113_curses.dir/all' failed
mingw32-make.exe[2]: *** [113_curses.exe] Error 1
Makefile:82: recipe for target 'all' failed
mingw32-make.exe[1]: *** [CMakeFiles/113_curses.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
【问题讨论】:
-
你应该可以只使用
FindCurses模块...cmake.org/cmake/help/v3.0/module/FindCurses.html -
喜欢
find_package(Curses REQUIRED)?之前尝试过:Could NOT find Curses (missing: CURSES_LIBRARY) -
@sezi80 你安装 ncurses 了吗?
-
我下载了适用于 windows 的 pdcurses。正如我所说,我做了上述文件夹中的文件。在 Visual Studio 中,当我添加库时它正在工作。我无法让它在我更喜欢使用的 CLion 中工作。
-
How do my CMakeLists.txt does to have to look for this?- 根据构建消息,CMake(实际上是链接器)找到您的库,但将其视为不兼容。从 MinGW 构建项目时,您需要 MinGW 兼容 版本的 ncurses,而不是 Visual Studio 版本。