libicuuc:命令行中缺少 DSO

libicuuc: DSO missing from command line

我运行下面的链接器命令

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

它告诉我链接器命令中缺少 libicuuc 库(即 -licuuc),但它确实存在。我错过了什么?

事实证明,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

来更改链接器命令