libicuuc:命令行缺少DSO

时间:2018-08-04 22:46:32

标签: gcc linker g++ linker-errors

我运行以下链接程序命令

g++ -Wl,-rpath,/opt/Qt/5.11.1/gcc_64/lib -o qt_mapnik main.o mainwindow.o moc_mainwindow.o   -L/usr/local/lib -lmapnik -lboost_filesystem -lboost_regex -lpng -lproj -ltiff -licui18n -lboost_system -lharfbuzz -ljpeg -licuuc -lfreetype -lz -ldl -L/home/mark/Documents/mapnik/freetype -L/usr/lib -pthread -L/opt/Qt/5.11.1/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread

此消息有误

/usr/bin/x86_64-linux-gnu-ld: main.o: undefined reference to symbol '_ZNK6icu_6013UnicodeString10doHashCodeEv'
//usr/lib/x86_64-linux-gnu/libicuuc.so.60: error adding symbols: DSO missing from command line

它告诉我,链接器命令(即-licuuc)中缺少libicuuc库,但是肯定存在。我想念什么?

1 个答案:

答案 0 :(得分:0)

事实证明,libicuuc也存在于计算机上的某些位置。编译器首先在/opt/Qt/5.11.1/gcc_64/lib/libicuuc.so.56中找到它。但是,所需的版本在/usr/lib/x86_64-linux-gnu/libicuuc.so.60中,可以通过将-licuuc替换为/usr/lib/x86_64-linux-gnu/libicuuc.so.60

来更改链接器命令。