cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=$PREFIX/lib -DBUILD_SHARED_LIBS=OFF -DSQLITE3_INCLUDE_DIR=$PREFIX/include -DSQLITE3_LIBRARY=$PREFIX/lib/libsqlite3.a
编译proj9.0.1使用cmake命令报错:
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to deflateInit_' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
zlibVersion'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to deflate' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
ZSTD_initCStream'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to deflateEnd' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
ZSTD_compressStream'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to ZSTD_freeCStream' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
inflate'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to ZSTD_maxCLevel' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
inflateInit2_'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to inflateInit_' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
ZSTD_createDStream'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to inflateEnd' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
ZSTD_decompressStream'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to ZSTD_initDStream' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
ZSTD_createCStream'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to inflateReset' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
deflateReset'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to ZSTD_isError' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
ZSTD_freeDStream'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to ZSTD_getErrorName' /usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to
ZSTD_endStream'
/usr/bin/ld: ../../lib/libproj.so.25.9.0.1: undefined reference to `deflateParams'
该回答引用ChatGPT-3.5,仅供参考,不保证完全正确
这个错误表明在编译proj9.0.1时,链接器(ld)无法找到对应的函数定义。这些函数是与zlib和Zstandard(ZSTD)库相关的。
要解决这个问题,你需要确保正确链接了zlib和ZSTD库。以下是一些可能的解决方法:
检查依赖:确保系统上已经安装了zlib和ZSTD库及其开发包。你可以使用包管理器来安装它们。在大多数Linux发行版上,可以使用以下命令来安装:
对于Debian/Ubuntu系统:
sudo apt-get install zlib1g-dev libzstd-dev
对于CentOS/Fedora系统:
sudo yum install zlib-devel libzstd-devel
这将安装zlib和ZSTD库及其开发文件。
检查库路径:确认zlib和ZSTD库的路径在系统的库搜索路径中。你可以检查/etc/ld.so.conf
文件和LD_LIBRARY_PATH
环境变量,确保这些库所在的路径被正确设置。
检查CMake配置:如果你使用CMake来构建项目,请确保CMakeLists.txt文件中已正确指定zlib和ZSTD库的路径。你可以使用find_package
命令来查找和链接这些库。示例:
find_package(ZLIB REQUIRED)
find_package(ZSTD REQUIRED)
target_link_libraries(your_target_name PRIVATE ZLIB::ZLIB ZSTD::ZSTD)
确保将这些代码添加到CMakeLists.txt文件中,并将your_target_name
替换为你的目标名称。
清理和重新构建:尝试清理构建目录并重新运行CMake和make命令。这有时可以解决构建问题。
该回答引用NewBing,仅供参考,不保证完全正确
您好,这是Bing。我看到您在使用Linux编译proj9.0.1时遇到了一些问题。根据我的搜索结果,这可能是由于您在链接时缺少了相关的库文件,导致了undefined reference to zlib的错误¹²³。您可以尝试在编译命令中添加-lz和-lzstd参数,以链接zlib和zstd库,或者检查您的库文件是否正确安装和配置。希望这能对您有所帮助。😊
源: 与必应的对话, 2023/7/18
(1) “undefined reference to“ 解决方法_daijingxin的博客-CSDN博客. https://blog.csdn.net/daijingxin/article/details/117292473.
(2) 怎么解决编译时出现的“undefined reference to xxx
”错误. https://blog.csdn.net/weixin_41944449/article/details/120586638.
(3) Linux makefile — undefined reference to 问题解决方法 - CSDN博客. https://blog.csdn.net/yanjing12260302/article/details/81197623.
这只是解决相关问题的一种可能的方法,根据具体情况可能会有其他解决方案。因此,如果您仍然遇到问题,请提供更多关于您的编译环境和项目配置的详细信息,以便我们能够更好地帮助您解决问题。