【发布时间】:2020-05-16 02:29:03
【问题描述】:
我正在将 CLion(强制 CMake)与 WSL 工具栈一起使用。
cmake_minimum_required(VERSION 3.13)
project(conana)
set(CMAKE_CXX_STANDARD 20)
include(${CMAKE_BINARY_DIR}/cmake-build-debug/conanbuildinfo.cmake)
conan_basic_setup()
set(APPEND CMAKE_PREFIX_PATH "/mnt/c/Users/b/src/libpqxx/")
set(SOURCES main.cpp)
add_executable(conana ${SOURCES})
#target_link_libraries(${project} ${CONAN_LIBS})
产生错误
====================[ Build | conana | Debug ]==================================
/usr/bin/cmake --build /mnt/c/Users/b/CLionProjects/conana --target conana -- -j 8
[ 50%] Building CXX object CMakeFiles/conana.dir/main.cpp.o
[100%] Linking CXX executable bin/conana
/usr/bin/ld: CMakeFiles/conana.dir/main.cpp.o: in function `__static_initialization_and_destruction_0(int, int)':
/home/buddha/.conan/data/libpqxx/7.0.1/bincrafters/stable/package/cfd7bc19fdc01c984df6e1fe4e7d6856d5f9b76a/include/pqxx/strconv.hxx:76: undefined reference to `pqxx::internal::demangle_type_name[abi:cxx11](char const*)'
collect2: error: ld returned 1 exit status
make[3]: *** [CMakeFiles/conana.dir/build.make:84: bin/conana] Error 1
make[2]: *** [CMakeFiles/Makefile2:73: CMakeFiles/conana.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/conana.dir/rule] Error 2
make: *** [Makefile:118: conana] Error 2
感谢您的帮助。取消注释 target_link_libraries 会出现“不受此 CMake 管理”错误。
【问题讨论】:
-
可能是您链接的 libstdc++ 与您用于安装 conan 软件包的 libstdc++ 不同。确保在
conan install时阅读输出。默认一个是libstdc++而不是libstdc++11,因为历史原因和与旧发行版的兼容性。您可以更改默认的 libcxx 设置,如 docs.conan.io/en/latest/getting_started.html 和conan profile update settings.compiler.libcxx=libstdc++11 default中所述。我很想知道这是否有效,即使你最终没有柯南。 -
如果我尝试一下,我会告诉你的。感谢您的建议。
标签: cmake clion windows-subsystem-for-linux conan libpqxx