cmake std::shared_ptr CHECK_CXX_SOURCE_COMPILES 失败 mysql connector-c++ pre-build
cmake std::shared_ptr CHECK_CXX_SOURCE_COMPILES fails mysql connector-c++ pre-build
我正在尝试使用他们的 Git 存储库和 CMake 编译 MySQL Connector--C++。我是 CMake 的新手,所以我可能不知道。就目前而言,下面的代码失败了,并且失败为 "Type std::shared_ptr required by CDK is not available"。我使用的是 Visual Studio 2017,可以正常访问 std::shared_ptr。 header 包括在内。我很茫然。
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
INCLUDE(CheckCXXSourceCompiles)
CHECK_CXX_SOURCE_COMPILES(
"#include <memory>
void test(std::shared_ptr<int>) {};
int main() { return 0; }"
HAVE_SHARED_PTR
)
#message("HAVE_SHARED_PTR: ${HAVE_SHARED_PTR}")
ADD_CONFIG(HAVE_SHARED_PTR)
if (NOT HAVE_SHARED_PTR)
message(FATAL_ERROR "Type std::shared_ptr required by CDK is not available")
endif()
我收到了来自 MySQL 错误报告系统的反馈。在 vs ide 中,CXX 是什么,或者不是什么,不能使用 CHECK_CXX_SOURCE_COMPILES 编译测试代码。给出的解决方案是检查 msvc 编译器是否处于或高于某个版本,可以保证这些功能存在。另一种方法是使用带有 msvc 编译器的 cmake 命令行,或者再次使用带有 msvc 编译器的 cmake gui 工具。我只想使用 vs ide。头文件也有几个问题。建议直接从 Boost 中获取,但只有字节序存在,没有字节序。我的最终解决方案是使用 .Net 连接器和互操作,因为涉及 MySQL 的任务很大而且是连续的,而不是关键任务。并且不受 c# 的过度影响。
我正在尝试使用他们的 Git 存储库和 CMake 编译 MySQL Connector--C++。我是 CMake 的新手,所以我可能不知道。就目前而言,下面的代码失败了,并且失败为 "Type std::shared_ptr required by CDK is not available"。我使用的是 Visual Studio 2017,可以正常访问 std::shared_ptr。 header 包括在内。我很茫然。
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
INCLUDE(CheckCXXSourceCompiles)
CHECK_CXX_SOURCE_COMPILES(
"#include <memory>
void test(std::shared_ptr<int>) {};
int main() { return 0; }"
HAVE_SHARED_PTR
)
#message("HAVE_SHARED_PTR: ${HAVE_SHARED_PTR}")
ADD_CONFIG(HAVE_SHARED_PTR)
if (NOT HAVE_SHARED_PTR)
message(FATAL_ERROR "Type std::shared_ptr required by CDK is not available")
endif()
我收到了来自 MySQL 错误报告系统的反馈。在 vs ide 中,CXX 是什么,或者不是什么,不能使用 CHECK_CXX_SOURCE_COMPILES 编译测试代码。给出的解决方案是检查 msvc 编译器是否处于或高于某个版本,可以保证这些功能存在。另一种方法是使用带有 msvc 编译器的 cmake 命令行,或者再次使用带有 msvc 编译器的 cmake gui 工具。我只想使用 vs ide。头文件也有几个问题。建议直接从 Boost 中获取,但只有字节序存在,没有字节序。我的最终解决方案是使用 .Net 连接器和互操作,因为涉及 MySQL 的任务很大而且是连续的,而不是关键任务。并且不受 c# 的过度影响。