undefined reference to `__res_query’
Question:
Trying to link Chilkat (C++) with the following libs: LIBS=-lstdc++fs \ -pthread \ -L${FMT_LIB} -lfmt \ -lspdlog \ /usr/local/lib/libredis++.a \ ${BOOST_LIB}/libboost_json.a \ ... ... ${CHILKAT_LIB}/libchilkat-9.5.0.a \ -lmongoc-1.0 -lbson-1.0 \ -lpthread \ -ldl \ -lresolv After we went from ubuntu 21 to 22 LTS, using same compiler, it stopped working. Now we get errors: /usr/bin/ld: ... libchilkat-9.5.0.a(ChilkatResolve.o): in function `ChilkatResolve::bestMxLookup(char const*, StringBuffer&, LogBase&, bool)': ChilkatResolve.cpp:(.text+0x2c6): undefined reference to `__res_query' /usr/bin/ld: ... libchilkat-9.5.0.a(ChilkatResolve.o): in function `ChilkatResolve::dkimLookup(char const*, StringBuffer&, LogBase&, bool)': ChilkatResolve.cpp:(.text+0x47f): undefined reference to `__res_query' /usr/bin/ld: ... libchilkat-9.5.0.a(ChilkatResolve.o): in function `ChilkatResolve::mxLookup(char const*, ScoredStrings&, LogBase&, bool)': ChilkatResolve.cpp:(.text+0x64e): undefined reference to `__res_query' collect2: error: ld returned 1 exit status make: *** [Makefile:47: debug] Error 1 When we change to dynamic linking, using -L${CHILKAT_LIB} -lchilkat-9.5.0 instead of ${CHILKAT_LIB}/libchilkat-9.5.0.a it builds.
res_query is part of the DNS resolver library. See https://linux.die.net/man/3/res_query
The man page for res_query tells you what must be linked, and it is “Link with -lresolv”
I can see you have “-lresolv” in your list of LIBS. However, you’re on a new machine, so it’s probably the case that the -lresolv library is not yet installed on the machine, or somehow it is not found.
admin
0
Tags :