【发布时间】:2019-10-15 11:35:16
【问题描述】:
我正在尝试使用cmake 构建新的libmysqlcppconn 版本8 的简单示例,我下载了连接器并从源代码构建和安装。但是当我尝试使用 cmake 或 Clion 运行构建我的 helloworld 时出现错误
/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::internal::Result_common<mysqlx::abi2::r0::internal::Result_detail>::~Result_common()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir
/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::internal::Result_common<mysqlx::abi2::r0::internal::Result_detail>::~Result_common()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir
/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::Result::~Result()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir
/usr/bin/ld: CMakeFiles/hellogcp.dir/src/main.cpp.o: en la función `mysqlx::abi2::r0::Result::~Result()':
/usr/include/mysqlx/devapi/result.h:71: referencia a `mysqlx::abi2::r0::internal::Result_detail::~Result_detail()' sin definir
我用
测试find_library(MYSQL_LIB mysqlcppconn8)
target_link_libraries(${PROJECT_NAME} ${MYSQL_LIB})
但是不管有没有find_library,错误都是一样的。
如果我使用:
set(EXTRA_LIBRARY "mysqlcppconn8")
我明白了
/usr/bin/ld: can not be found -lmysqlcppconn8
/usr/bin/ld: can not be found -lmysqlcppconn8
与:
g++ -std=c++11 -I .../include -L .../lib64 src/main.cpp -lmysqlcppconn8 -o app
完美构建。但是如果我删除 -lmysqlcppconn8,我会得到与 cmake 相同的错误。
如何将-lmysqlcppconn8 添加到cmake?
【问题讨论】:
-
你得到的错误是因为没有链接到所需的库。您的意思是错误是由
find_library方法引起的吗?否则,在描述这种方法时,您所说的“但不起作用”是什么意思? -
无论有没有find_library,错误都是一样的