我发现CUDA在我的mac上无法在64位模式下工作(或者目前无法运行它)。所以我决定编译一切为32位。cmake,gcc,cuda和-m32
我使用的cmake 2.8,并添加下列选项
add_definitions(-Wall -m32)
set(CUDA_64_BIT_DEVICE_CODE OFF)
set(CMAKE_MODULE_LINKER_FLAGS -m32)
但是当它试图它确实是这样的链接吧:
/usr/bin/c++ -mmacosx-version-min=10.6 -Wl,-search_paths_first -headerpad_max_install_names CMakeFiles/SimpleTestsCUDA.dir/BlockMatrix.cpp.o CMakeFiles/SimpleTestsCUDA.dir/Matrix.cpp.o ./SimpleTestsCUDA_generated_SimpleTests.cu.o ./SimpleTestsCUDA_generated_BlockMatrix.cu.o -o SimpleTestsCUDA /usr/local/cuda/lib/libcudart.dylib /usr/local/cuda/lib/libcuda.dylib
哪些失败了很多的“文件不所需架构“的警告来自ld。现在,如果我手动添加-m32到上面的命令它工作。然而,我不知道如何教cmake为每个gcc(或ld)调用添加-m32。到目前为止,它会为NVCC和gcc,而不是链接..
想通了,它的工作原理,如果我的cmake调用与以下标志: -DCMAKE_C_FLAGS = -m32 --DCMAKE_CXX_FLAGS = -m32 – Nils 2010-04-11 15:33:07
我想我想通了.. 集(CMAKE_C_FLAGS -m32) 集(CMAKE_CXX_FLAGS -m32) – Nils 2010-04-11 15:50:06