Clion 引入libevent Undefined symbols for architecture x86_64: "


CLion 引入libevent出現

Undefined symbols for architecture x86_64:
  "_evbuffer_add_printf", referenced from:
      httpHandler(evhttp_request*, void*) in main.cpp.o
  "_evbuffer_free", referenced from:
      httpHandler(evhttp_request*, void*) in main.cpp.o
  "_evbuffer_new", referenced from:
      httpHandler(evhttp_request*, void*) in main.cpp.o
  "_event_base_dispatch", referenced from:
      _main in main.cpp.o
  "_event_base_free", referenced from:
      _main in main.cpp.o
  "_event_base_new", referenced from:
      _main in main.cpp.o
  "_evhttp_bind_socket", referenced from:
      _main in main.cpp.o
  "_evhttp_free", referenced from:
      _main in main.cpp.o
  "_evhttp_new", referenced from:
      _main in main.cpp.o
  "_evhttp_request_get_command", referenced from:
      httpHandler(evhttp_request*, void*) in main.cpp.o
  "_evhttp_request_get_host", referenced from:
      httpHandler(evhttp_request*, void*) in main.cpp.o
  "_evhttp_request_get_uri", referenced from:
      httpHandler(evhttp_request*, void*) in main.cpp.o
  "_evhttp_send_reply", referenced from:
      httpHandler(evhttp_request*, void*) in main.cpp.o
  "_evhttp_set_gencb", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[3]: *** [learn_libevent] Error 1
make[2]: *** [CMakeFiles/learn_libevent.dir/all] Error 2
make[1]: *** [CMakeFiles/learn_libevent.dir/rule] Error 2
make: *** [learn_libevent] Error 2

該問題是CMakeLists.txt導致的問題
在CMakeLists添加下述配置

# add extra include directories
include_directories(/usr/local/Cellar/libevent/2.1.11_1/include)
# add extra lib directories
link_directories(/usr/local/Cellar/libevent/2.1.11_1/lib)

在最后添加

target_link_libraries(learn_libevent event)

一定要加 上述的配置,不然引入第三方庫會出現錯誤,同時注意好順序。

完整配置

cmake_minimum_required(VERSION 3.8)
project(learn_libevent)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)

# add extra include directories
include_directories(/usr/local/Cellar/libevent/2.1.11_1/include)
# add extra lib directories
link_directories(/usr/local/Cellar/libevent/2.1.11_1/lib)




add_executable(learn_libevent ${SOURCE_FILES})

target_link_libraries(learn_libevent event)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM