проблема компоновщика с libstdc ++. so.6 в связи с cuda - PullRequest
4 голосов
/ 22 февраля 2011

сегодня я столкнулся с проблемой связывания моего скомпилированного материала cuda. ​​

У меня есть обновление Debian с обновлением 2.6.32-3-amd64.

Я работал весь день над своим кодом,время от времени компилируется.не было проблем.но затем после незначительного изменения кода я получил следующую ошибку:

gcc -o pa  CUDA.o  histogram256.o  histogram64.o  main.o  -lrt -lm -lcudart  -I. -I/data/cuda/include -I/data/cuda/C/common/inc -L/data/cuda/lib64
/usr/bin/ld: main.o: undefined reference to symbol 'std::basic_ifstream<char, std::char_traits<char> >::close()@@GLIBCXX_3.4'
/usr/bin/ld: note: 'std::basic_ifstream<char, std::char_traits<char> >::close()@@GLIBCXX_3.4' is defined in DSO /usr/lib64/libstdc++.so.6 so try adding it to the linker command line
/usr/lib64/libstdc++.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status

я изменил код обратно, но ошибка осталась.

библиотека находится там, где она должна быть.(/ usr / lib64 связана с / usr / lib)

ldd /usr/lib/libstdc++.so.6
    linux-vdso.so.1 =>  (0x00007fff31fff000)
    libm.so.6 => /lib/libm.so.6 (0x00007f15f625a000)
    libc.so.6 => /lib/libc.so.6 (0x00007f15f5ef9000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f15f680d000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f15f5ce2000)

надеюсь, у кого-то есть хороший совет.

Ответы [ 2 ]

15 голосов
/ 23 февраля 2011

добавление

-L/usr/lib64 -lstdc++

чтобы мой makefile / commandlineparameters исправил это.

8 голосов
/ 11 марта 2011

Вы также можете использовать g ++ вместо gcc. Это автоматически свяжется с stdc ++ без необходимости явно указывать его.

В чем разница между g ++ и gcc?

...