C++ CMake链接gcrypt错误,未定义对的引用

C++ CMake链接gcrypt错误,未定义对的引用,c++,c,linux,cmake,C++,C,Linux,Cmake,我试图在cmake中创建一个到gcrypt库的静态链接。 我的cmake看起来像这样: cmake_minimum_required(VERSION 3.15) set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") set(CMAKE_C_COMPILER /usr/bin/gcc) set(CMAKE_CXX_COMPILER /usr/bin/g++) project(testin) set(CMAKE_CXX_STANDARD 14)

我试图在cmake中创建一个到gcrypt库的静态链接。 我的cmake看起来像这样:

cmake_minimum_required(VERSION 3.15)
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
set(CMAKE_C_COMPILER /usr/bin/gcc)
set(CMAKE_CXX_COMPILER /usr/bin/g++)
project(testin)

set(CMAKE_CXX_STANDARD 14)

file(GLOB test
        "*.h"
        "*.cpp"
        "*.c"
        "./include/*.h"
        "./src/*.c"
        )

add_executable(testin ${test})

ADD_LIBRARY(libgcrypt STATIC IMPORTED)
SET_TARGET_PROPERTIES(libgcrypt PROPERTIES IMPORTED_LOCATION /usr/lib/x86_64-linux-gnu/libgcrypt.a)
target_link_libraries(testin libgcrypt)
我有以下错误:

/usr/lib/x86_64-linux-gnu/libgcrypt.a(libgcrypt_la-visibility.o): In function  `gcry_err_make_from_errno':
(.text+0x46): undefined reference to `gpg_err_code_from_errno'
/usr/lib/x86_64-linux-gnu/libgcrypt.a(libgcrypt_la-visibility.o): In function `gcry_error_from_errno':
(.text+0x75): undefined reference to `gpg_err_code_from_errno'
/usr/lib/x86_64-linux-gnu/libgcrypt.a(libgcrypt_la-visibility.o): In function `gcry_strerror':
(.text+0x1): undefined reference to `gpg_strerror'
/usr/lib/x86_64-linux-gnu/libgcrypt.a(libgcrypt_la-visibility.o): In function `gcry_strsource':
(.text+0x11): undefined reference to `gpg_strsource'

..... etc.

我试图在堆栈上找出我做错了什么,但我没能解决这个问题。如果重要的话,我会用Clion。有人能帮我解决这个问题吗?提前感谢您的帮助。

您需要链接到libgpg error(和朋友)。libgrcrypt直接需要六个不同的库。你需要建立所有这些。它们列在列表中。您还需要提供它们的依赖项,如zLib、Bzip和iConv。另请参见GitHub上的。它会让您了解需要管理的依赖关系。我解决了它,我必须将*.a文件更改为*.a文件,因此文件和所有内容现在都正常工作。谢谢你的帮助。你需要链接到libgpg错误(和朋友)。libgrcrypt直接需要六个不同的库。你需要建立所有这些。它们列在列表中。您还需要提供它们的依赖项,如zLib、Bzip和iConv。另请参见GitHub上的。它会让您了解需要管理的依赖关系。我解决了它,我必须将*.a文件更改为*.a文件,因此文件和所有内容现在都正常工作。谢谢你的帮助。