Yükseltme dosya sistemi kitaplığına bağlı bir C++ dosyası derlemek için bir cmake üretilen makefile kullanın. Aşağıdaki hatayı alıyorum Bağlama işlemi sırasında cmake ile boost.system bağlanma
: Bazı googling bana gösterdicd /Users/janusz/Documents/workspace/ImageMarker/Debug/src && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/ImageMarker.dir/link.txt --verbose=1 /usr/bin/c++ -O3 -Wall -Wno-deprecated -g -verbose -Wl,-search_paths_first -headerpad_max_install_names -fPIC CMakeFiles/ImageMarker.dir/ImageMarker.cpp.o CMakeFiles/ImageMarker.dir/Image.cpp.o CMakeFiles/ImageMarker.dir/utils.cpp.o CMakeFiles/ImageMarker.dir/XMLWriter.cpp.o CMakeFiles/ImageMarker.dir/FaceRecognizer.cpp.o -o ImageMarker -L/opt/local/lib ../libTinyXml.a /opt/local/lib/libboost_filesystem-mt.dylib
bu hata gibi görünüyor:
Undefined symbols: "boost::system::get_generic_category()", referenced from: __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o "boost::system::get_system_category()", referenced from: __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o ld: symbol(s) not found collect2: ld returned 1 exit status make[2]: *** [src/ImageMarker] Error 1
bu hatayı oluşturur makefile gelen eylem bu çizgidir bir boost.system kütüphanesine karşı bağlantı kurmak ya da boost.system kütüphanesine bağlı olarak projemi yapmak zorunda olduğum için destek dosyası sistem kütüphanesi ile maclarda ortak olun.
Kütüphane yolunu kodlamadan cmake'yi kitaplığa karşı bağlama konusunda nasıl zorlarım? otool dan İşte sonucu
: linux üzerinde
otool -L /opt/local/lib/libboost_filesystem-mt.dylib
/opt/local/lib/libboost_filesystem-mt.dylib:
/opt/local/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
Janusz, lütfen "otool -L /opt/local/lib/libboost_filesystem-mt.dylib" işlemini yapın ve bize sonucu verin. Teşekkürler. –