2016-12-29 8 views
0

Я тестирую реализацию CNN, предоставленную here. Я запустить команду:C++ реализация CNN Ошибка добавления символов: DSO отсутствует в командной строке

make cifar10 && ./cifar10 

Но я получил следующие сообщения:

g++ -o cifar10 BatchProducer.o ConvolutionalLayer.o ConvolutionalTriangularLayer.o IndexLearnerLayer.o MaxPoolingLayer.o MaxPoolingTriangularLayer.o NetworkArchitectures.o NetworkInNetworkLayer.o Picture.o Regions.o Rng.o SigmoidLayer.o SoftmaxClassifier.o SparseConvNet.o SparseConvNetCUDA.o SpatiallySparseBatch.o SpatiallySparseBatchInterface.o SpatiallySparseDataset.o SpatiallySparseLayer.o TerminalPoolingLayer.o cudaUtilities.o readImageToMat.o types.o utilities.o vectorCUDA.o vectorHash.o OpenCVPicture.o SpatiallySparseDatasetCIFAR10.o cifar10.o -lopencv_core -lopencv_highgui -lopencv_imgproc -lrt -larmadillo -lopenblas -lz --std=c++11 -O3 
/usr/bin/ld: BatchProducer.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5' 
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line 
collect2: error: ld returned 1 exit status 
make: *** [cifar10] Error 1 

Что случилось с этим? Я установил все зависимости, перечисленные на веб-странице. Я не устанавливал CUDA, потому что я тестировал версию CPU here. Поэтому я не думаю, что ошибка связана с отсутствием CUDA. Я использую Ubuntu 14.04 и gcc 5.3.0. Спасибо, что помогли мне !!!

ответ

0

Решение: добавьте '-lz' к вашим флагам makefile/GCC. Другими словами, ваша просто отсутствует библиотека в ваших шагах make и проверьте, не установлены ли все зависимости

sudo apt-get install libarmadillo-dev libopencv-core-dev libopencv-highgui-dev sparsehash 
+0

Спасибо. Я выполнил ваши инструкции и добавил «-lz» к флагам GCC. Но, похоже, ничего не изменилось. Я сделал что-то не так? Я положил все сообщения, распечатанные после запуска компиляции. Большое спасибо! – pfc

 Смежные вопросы

  • Нет связанных вопросов^_^