gpt4 book ai didi

c++ - 如何使用 CMake 正确链接外部库?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:43:58 24 4
gpt4 key购买 nike

我正在尝试使用 Chilkat C++ 库进行密码分配,但我似乎无法正确链接该库。截至目前,编译器无法找到头文件 CkRsa.h。我花了几个小时在互联网上搜索解决方案,但无济于事。到目前为止,这是我所拥有的(这都是在 Mac OS X 环境中进行的):

lib 文件安装在/users/Adam/Desktop/chilkat/libDyn 中,头文件在/users/Adam/Desktop/chilkat/include 中这是我的 CMakeLists.txt

cmake_minimum_required(VERSION 3.6)
project(SocketEncryption)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)

add_library(chilkat STATIC IMPORTED)
set_property(
TARGET chilkat
PROPERTY
IMPORTED_LOCATION "/users/Adam/Desktop/chilkat/libDyn/libchilkat_x86_64.dylib"
INTERFACE_INCLUDE_DIRECTORIES "/users/Adam/Desktop/chilkat/include"
)
add_executable(SocketEncryption ${SOURCE_FILES})

target_link_libraries(SocketEncryption chilkat)

这是我的 main.cpp

#include <iostream>
#include <CkRsa.h>
//#include <CkPrivateKey.h>
//#include <CkSocket.h>

int main() {
CkRsa alice;
CkRsa bob;

// Key Generation
bool success = alice.GenerateKey(1024);
const char *alicePublicKey = alice.exportPublicKey();
const char *alicePrivateKey = alice.exportPrivateKey();
const char *aliceMessage = "Hi, Bob. How are you?";

// Encryption Step
std::cout << "Encryption started." << std::endl;
CkRsa rsaEncryptor;
rsaEncryptor.put_EncodingMode("hex");
success = rsaEncryptor.ImportPublicKey(alicePublicKey);
bool usePrivateKey = false;
const char * ciphertext = rsaEncryptor.encryptStringENC(aliceMessage, success);
std::cout << ciphertext << std::endl;


return 0;
}

最佳答案

像这样更改您的代码(引用):

include_directories("/users/Adam/Desktop/chilkat/include")
link_directories("/users/Adam/Desktop/chilkat/libDyn")

关于c++ - 如何使用 CMake 正确链接外部库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43086011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com