Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake和vcpkg链接器错误和疯狂命名_Cmake_Vcpkg - Fatal编程技术网

CMake和vcpkg链接器错误和疯狂命名

CMake和vcpkg链接器错误和疯狂命名,cmake,vcpkg,Cmake,Vcpkg,我第一次在amqpcpp中使用vcpkg。我正在用cmake进行测试,以使用库获得项目设置。vcpkg正确安装包,cmake在找到目标amqpcpp时没有问题。链接器存在一些我无法解决的问题。下面是我的CMakeLists.txt cmake_minimum_required(VERSION 3.15) set(VCPKG_TARGET_TRIPLET x86-windows ) set(CMAKE_TOOLCHAIN_FILE "C:/Users/reine/vcpkg/scripts/bu

我第一次在amqpcpp中使用vcpkg。我正在用cmake进行测试,以使用库获得项目设置。vcpkg正确安装包,cmake在找到目标
amqpcpp
时没有问题。链接器存在一些我无法解决的问题。下面是我的CMakeLists.txt

cmake_minimum_required(VERSION 3.15)

set(VCPKG_TARGET_TRIPLET x86-windows )
set(CMAKE_TOOLCHAIN_FILE "C:/Users/reine/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")

project(amqp_test)

set(CMAKE_CXX_STANDARD 11)

find_package(amqpcpp CONFIG REQUIRED)
include_directories(${amqpcpp_INCLUDE_DIR})

add_executable(amqp_test main.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE amqpcpp)
下面是我遇到的链接器错误。
ConnectionImpl
确实存在。为什么文件名如此疯狂?我想这样做是为了防止对象的双重引用。我想这就是我的问题所在

c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: CMakeFiles\amqp_test.dir/objects.a(main.cpp.obj): in function `ZN4AMQP10ConnectionD1Ev':
C:/Users/reine/vcpkg/installed/x86-windows/include/amqpcpp/connection.h:70: undefined reference to `AMQP::ConnectionImpl::~ConnectionImpl()'
我已经做了我的尽职调查,搜索这种类型的链接器错误,我完全卡住了

详细生成输出

Clean finished

====================[ Build | all | Debug ]=====================================
"C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe" --build C:\Users\reine\CLionProjects\amqp-test\cmake-build-debug --target all -- -j 4
"C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe" -SC:\Users\reine\CLionProjects\amqp-test -BC:\Users\reine\CLionProjects\amqp-test\cmake-build-debug --check-build-system CMakeFiles\Makefile.cmake 0
"C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe" -E cmake_progress_start C:\Users\reine\CLionProjects\amqp-test\cmake-build-debug\CMakeFiles C:\Users\reine\CLionProjects\amqp-test\cmake-build-debug\CMakeFiles\progress.marks
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\Makefile2 all
mingw32-make.exe[1]: Entering directory 'C:/Users/reine/CLionProjects/amqp-test/cmake-build-debug'
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\amqp_test.dir\build.make CMakeFiles/amqp_test.dir/depend
mingw32-make.exe[2]: Entering directory 'C:/Users/reine/CLionProjects/amqp-test/cmake-build-debug'
"C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" C:\Users\reine\CLionProjects\amqp-test C:\Users\reine\CLionProjects\amqp-test C:\Users\reine\CLionProjects\amqp-test\cmake-build-debug C:\Users\reine\CLionProjects\amqp-test\cmake-build-debug C:\Users\reine\CLionProjects\amqp-test\cmake-build-debug\CMakeFiles\amqp_test.dir\DependInfo.cmake --color=
mingw32-make.exe[2]: Leaving directory 'C:/Users/reine/CLionProjects/amqp-test/cmake-build-debug'
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\amqp_test.dir\build.make CMakeFiles/amqp_test.dir/build
mingw32-make.exe[2]: Entering directory 'C:/Users/reine/CLionProjects/amqp-test/cmake-build-debug'
[ 50%] Building CXX object CMakeFiles/amqp_test.dir/main.cpp.obj
C:\MinGW\bin\g++.exe   @CMakeFiles/amqp_test.dir/includes_CXX.rsp -g   -std=gnu++11 -o CMakeFiles\amqp_test.dir\main.cpp.obj -c C:\Users\reine\CLionProjects\amqp-test\main.cpp
[100%] Linking CXX executable amqp_test.exe
"C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe" -E cmake_link_script CMakeFiles\amqp_test.dir\link.txt --verbose=1
"C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe" -E remove -f CMakeFiles\amqp_test.dir/objects.a
C:\MinGW\bin\ar.exe cr CMakeFiles\amqp_test.dir/objects.a @CMakeFiles\amqp_test.dir\objects1.rsp
C:\MinGW\bin\g++.exe -g   -Wl,--whole-archive CMakeFiles\amqp_test.dir/objects.a -Wl,--no-whole-archive  -o amqp_test.exe -Wl,--out-implib,libamqp_test.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\amqp_test.dir\linklibs.rsp
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: CMakeFiles\amqp_test.dir/objects.a(main.cpp.obj): in function `ZN4AMQP10ConnectionC1EPNS_17ConnectionHandlerERKNS_5LoginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE':
C:/Users/reine/vcpkg/installed/x86-windows/include/amqpcpp/connection.h:40: undefined reference to `AMQP::ConnectionImpl::ConnectionImpl(AMQP::Connection*, AMQP::ConnectionHandler*, AMQP::Login const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: CMakeFiles\amqp_test.dir/objects.a(main.cpp.obj): in function `ZN4AMQP10ConnectionD1Ev':
C:/Users/reine/vcpkg/installed/x86-windows/include/amqpcpp/connection.h:70: undefined reference to `AMQP::ConnectionImpl::~ConnectionImpl()'
collect2.exe: error: ld returned 1 exit status
CMakeFiles\amqp_test.dir\build.make:89: recipe for target 'amqp_test.exe' failed
mingw32-make.exe[2]: Leaving directory 'C:/Users/reine/CLionProjects/amqp-test/cmake-build-debug'
mingw32-make.exe[2]: *** [amqp_test.exe] Error 1
mingw32-make.exe[1]: *** [CMakeFiles/amqp_test.dir/all] Error 2
CMakeFiles\Makefile2:77: recipe for target 'CMakeFiles/amqp_test.dir/all' failed
mingw32-make.exe[1]: Leaving directory 'C:/Users/reine/CLionProjects/amqp-test/cmake-build-debug'
Makefile:85: recipe for target 'all' failed
mingw32-make.exe: *** [all] Error 2
清洁完成
=========================[构建|所有|调试]=====================================
“C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe”--生成C:\Users\reine\CLionProjects\amqp测试\cmake生成调试--目标全部--j 4
“C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe”-SC:\Users\reine\CLionProjects\amqp test-BC:\Users\reine\CLionProjects\amqp test\cmake build debug-检查生成系统CMakeFiles\Makefile.cmake 0
“C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe”-E cmake\u progress\u start C:\Users\reine\CLionProjects\amqp test\cmake build debug\cmake文件C:\Users\reine\CLionProjects\amqp test\cmake build debug\cmake progress.marks
C:/MinGW/bin/mingw32-make.exe-f CMakeFiles\Makefile2 all
mingw32 make.exe[1]:进入目录“C:/Users/reine/CLionProjects/amqp test/cmake build debug”
C:/MinGW/bin/mingw32-make.exe-f CMakeFiles\amqp_test.dir\build.make CMakeFiles/amqp_test.dir/depend
mingw32 make.exe[2]:进入目录“C:/Users/reine/CLionProjects/amqp test/cmake build debug”
“C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe”-E cmake_依赖于“MinGW Makefiles”C:\Users\reine\CLionProjects\amqp test C:\Users\reine\CLionProjects\amqp test C:\Users\reine\CLionProjects\amqp test\cmake build debug C:\Users\reine\CLionProjects\amqp test\cmake build debug\cmake build debug\amqp\u test.dir\DependInfo.cmake--color=
mingw32 make.exe[2]:离开目录“C:/Users/reine/CLionProjects/amqp test/cmake build debug”
C:/MinGW/bin/mingw32-make.exe-f CMakeFiles\amqp_test.dir\build.make CMakeFiles/amqp_test.dir/build
mingw32 make.exe[2]:进入目录“C:/Users/reine/CLionProjects/amqp test/cmake build debug”
[50%]构建CXX对象CMakeFiles/amqp_test.dir/main.cpp.obj
C:\MinGW\bin\g++.exe@CMakeFiles/amqp_test.dir/includes\CXX.rsp-g-std=gnu++11-o CMakeFiles\amqp_test.dir\main.cpp.obj-C:\Users\reine\CLionProjects\amqp test\main.cpp
[100%]链接CXX可执行文件amqp_test.exe
“C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe”-E cmake\u link\u script CMakeFiles\amqp\u test.dir\link.txt--verbose=1
“C:\Program Files\JetBrains\CLion 2019.2.5\bin\cmake\win\bin\cmake.exe”-E remove-f CMakeFiles\amqp_test.dir/objects.a
C:\MinGW\bin\ar.exe cr CMakeFiles\amqp_test.dir/objects.a@CMakeFiles\amqp_test.dir\objects1.rsp
C:\MinGW\bin\g++.exe-g-Wl,-完整存档CMakeFiles\amqp_test.dir/objects.a-Wl,-无完整存档-o amqp_test.exe-Wl,-out implib,libamqp_test.dll.a-Wl,-主映像版本,0,-次映像版本,0@CMakeFiles\amqp_test.dir\linklibs.rsp
c:/mingw/bin/./lib/gcc/mingw32/8.2.0/../../../../../../mingw32/bin/ld.exe:CMakeFiles\amqp_test.dir/objects.a(main.cpp.obj):在函数“ZN4AMQP10ConnectionC1EPNS_17connectionhandlerkns\u 5LoginERKNSt7\uu cx1112basic\u stringcst11char\u traitsiceeee”中:
C:/Users/reine/vcpgg/installed/x86 windows/include/amqpcpp/connection.h:40:对“AMQP::ConnectionImpl::ConnectionImpl”(AMQP::connection*,AMQP::ConnectionHandler*,AMQP::Login const&,std:u cxx11::basic_string const&)的未定义引用
c:/mingw/bin/./lib/gcc/mingw32/8.2.0/../../../../../../../mingw32/bin/ld.exe:cmakfiles\amqp_test.dir/objects.a(main.cpp.obj):在函数“ZN4AMQP10ConnectionD1Ev”中:
C:/Users/reine/vcpgg/installed/x86 windows/include/amqpcpp/connection.h:70:对“AMQP::ConnectionImpl::~ConnectionImpl()的引用未定义”
collect2.exe:错误:ld返回了1个退出状态
CMakeFiles\amqp_test.dir\build.make:89:目标'amqp_test.exe'的配方失败
mingw32 make.exe[2]:离开目录“C:/Users/reine/CLionProjects/amqp test/cmake build debug”
mingw32 make.exe[2]:***[amqp_test.exe]错误1
mingw32 make.exe[1]:***[CMakeFiles/amqp_test.dir/all]错误2
CMakeFiles\Makefile2:77:目标“CMakeFiles/amqp_test.dir/all”的配方失败
mingw32 make.exe[1]:离开目录“C:/Users/reine/CLionProjects/amqp test/cmake build debug”
Makefile:85:目标“全部”的配方失败
mingw32-make.exe:**[all]错误2

是的,它被称为名称混乱。另外,您是否确定
amqpcpp
目标是导入目标的正确名称?您是否可以使用
make verbose=1
提供编译的详细输出?这是一个好消息。我知道它很实用,只是不知道为什么。某些浏览者无法访问您提供的指向外部站点的链接。请将此内容作为文本添加到您的问题帖子中,特别是关于错误的部分。谢谢。你知道
amqpcpp
库的全名是什么吗?我看不到它被链接到你的链接阶段的任何地方。。。