为什么我收到错误:架构 x86_64 的未定义符号?

问题描述

工具:MacOS、C++、Brew、nats.c

嗨,那里。我正在尝试将程序与 NATS 连接。我使用的库是 https://github.com/nats-io/nats.c

一小段代码

    #include <iostream>
    #include "nats/nats.h"
    
    using std::cout;
    using std::endl;
    using std::string;
    
    int main() {
        cout << "[App] Started" << endl;
        natsConnection      *conn  = NULL;
        natsConnection_ConnectTo(&conn,NATS_DEFAULT_URL);
    }

CMake 文件

    cmake_minimum_required(VERSION 3.17)  
    project(broker)  
    
    set(CMAKE_CXX_STANDARD 20)  
    
    set(CNATS_INCLUDE "/usr/local/Cellar/cnats/2.5.1/include")  
    include_directories(${CNATS_INCLUDE})  
    
    set(THREADS_PREFER_PTHREAD_FLAG ON)  
    find_package(Threads required)  
    
    add_executable(broker main.cpp)  

但是当我尝试运行它时:

    [ 50%] Linking CXX executable broker  
    Undefined symbols for architecture x86_64:  
      "_natsConnection_ConnectTo",referenced from:  
          _main in main.cpp.o  
    ld: symbol(s) not found for architecture x86_64  
    clang: error: linker command Failed with exit code 1 (use -v to see invocation)  
    make[3]: *** [broker] Error 1  
    make[2]: *** [CMakeFiles/broker.dir/all] Error 2  
    make[1]: *** [CMakeFiles/broker.dir/rule] Error 2  
    make: *** [broker] Error 2

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)