首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MacOS X小牛上链接Cuda应用程序时出错

在MacOS X小牛上链接Cuda应用程序时出错
EN

Stack Overflow用户
提问于 2014-08-06 08:13:57
回答 1查看 399关注 0票数 1

我试图使用C++ 5.1.1和Cuda 6在MacOS X小牛上构建XCode \ Cuda应用程序。

在链接过程中,我收到以下错误:

代码语言:javascript
复制
Undefined symbols for architecture x86_64:
  "std::ios_base::Init::Init()", referenced from:
      ___cxx_global_var_init in bmp-read.cu.o
      ___cxx_global_var_init in encoder_nostream.cu.o
      ___cxx_global_var_init in encoder_stream.cu.o
      ___cxx_global_var_init in tier1.cu.o
  "std::ios_base::Init::~Init()", referenced from:
      ___cxx_global_var_init in bmp-read.cu.o
      ___cxx_global_var_init in encoder_nostream.cu.o
      ___cxx_global_var_init in encoder_stream.cu.o
      ___cxx_global_var_init in tier1.cu.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试在可能的情况下使用libstdc++ (-lstdc++)选项,但没有任何结果。

下面是makefile的一部分:

代码语言:javascript
复制
# Compilers 
NVCC       := $(CUDA_INSTALL_PATH)/bin/nvcc
CXX        := g++
CC         := gcc
LINK       := g++ -fPIC

# Includes
INCLUDES  += -I. -I$(CUDA_INSTALL_PATH)/include -I$(COMMONDIR)/inc

# architecture flag for cubin build
CUBIN_ARCH_FLAG := -m32

# Warning flags
CXXWARN_FLAGS := \
    -W -Wall \
    -Wimplicit \
    -Wswitch \
    -Wformat \
    -Wchar-subscripts \
    -Wparentheses \
    -Wmultichar \
    -Wtrigraphs \
    -Wpointer-arith \
    -Wcast-align \
    -Wreturn-type \
    -Wno-unused-function \
    $(SPACE)

CWARN_FLAGS := $(CXXWARN_FLAGS) \
    -Wstrict-prototypes \
    -Wmissing-prototypes \
    -Wmissing-declarations \
    -Wnested-externs \
    -Wmain \

# Compiler-specific flags
NVCCFLAGS := -ccbin /usr/bin/clang -arch=sm_30 --compiler-options -Wall,-ansi,-Wno-extra-tokens -Xcompiler -stdlib=libstdc++
CXXFLAGS  := $(CXXWARN_FLAGS) -stdlib=libstdc++
CFLAGS    := $(CWARN_FLAGS) -stdlib=libstdc++

...

LIB       := -L$(CUDA_INSTALL_PATH)/lib -L$(LIBDIR) -L$(COMMONDIR)/lib/$(OSLOWER) 
LIB += -lstdc++$(LIBSUFFIX)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-06 09:38:20

诀窍是把-stdlib=libstdc++传给链接器。

LINK := g++ -fPIC -stdlib=libstdc++

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25155345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档