我正在为我的 Visual Studio 10 构建 MySQL C 连接器 6.1.0。在执行以下步骤后,它确实可以编译为 32 位:
- 启动 Visual Studio 命令提示符(以管理员身份!)。
- 制作。-G“Visual Studio 10”
- devenv libmysql.sln /build 发布
对于调试:
- 制作。-G "Visual Studio 10" -DCMAKE_BUILD_TYPE=调试
- devenv libmysql.sln /重建调试
但是,如果我尝试使用“cmake . -G”Visual Studio 10 Win64”编译器为 64 位架构构建它,则会引发错误:
11>my_atomic.c(30): error C2118: negative subscript
对于以下代码行:
compile_time_assert(sizeof(intptr) == sizeof(void *));
我的直觉表明,编译器并没有为 64 位编译它。尝试将此类参数传递给 cmake 无济于事:
cmake . -G "Visual Studio 10 Win64" -DCMAKE_C_FLAGS="-m64" -DCMAKE_CXX_FLAGS="-m64"
再说明一点:文件“my_atomic.c”属于项目“mysys”,它被编译为C代码(配置属性->C/C++->高级下的/TC选项。
有任何想法吗?