对于我的硕士学位,我需要在一个名为 daddb 的数据库上工作(它在 git hub 上)。通常在 Linux 上,您可以简单地克隆它并“制作”它来安装。
安装 CMake 和 Cygwin 后,我在 Windows 上也感到厌烦。
但是在编译过程中我得到了错误
'DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp:1445:96:
错误:ISO C++ 禁止指针和整数之间的比较 [-fpermissive]auto compareNotEqual( LhsT const& lhs, RhsT&& rhs ) -> bool { return static_cast<bool>(lhs != rhs); }'
由于我怀疑duckdb的创建者确实把这件事搞砸了,我认为尝试将C文件编译为C++文件时可能会出现编译器错误。
我的主要问题是:如何在 Windows 上配置 make 命令以阻止它产生此错误?
我在安装了 gcc 5.1 和当前 cmake 的 Windows 7 和 10 系统上都尝试了它,并且都产生了这个错误。
编辑:这是完整的错误文本
[ 87%] 构建 CXX 对象 test/sql/capi/CMakeFiles/test_sql_capi.dir/ub_test_sql_capi.cpp.obj 在来自 C:/duckdb/test/sql/capi/test_capi.cpp:1:0 的文件中,来自 test_capi。 cpp:0:
C:/DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp: 在 'bool >Catch::compareNotEqual(const LhsT&, RhsT&&) [with LhsT = void*; RhsT = const >long long int&]':
C:/DB/DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp:1471:37: 需要来自 'const >Catch::BinaryExpr Catch::ExprLhs::operator!=(const >RhsT&) [with RhsT = long long int; LhsT = void* const&]'
C:/DB/duckdb/test/sql/capi/test_capi.cpp:332:2: 从这里需要 C:/DB/DUCKDB~2/duckdb/THIRD_~1/catch/catch.hpp:1445:96: 错误: ISO C++ 禁止比较 > 在指针和整数之间 [-fpermissive] auto compareNotEqual( LhsT const& lhs, RhsT&& rhs ) -> bool { return >static_cast(lhs != rhs); }
我只在路径等中编辑了我的用户名。