【问题标题】:Undefined symbols for architecture x86_64 _cJSON trying to compile test app架构 x86_64 _cJSON 的未定义符号试图编译测试应用程序
【发布时间】:2018-07-06 21:03:00
【问题描述】:

我正在尝试编译使用:

cc -I ./curl-7.58.0/include/curl -I ./cJSON-master alexa_request_simple_demo.c

我收到了标题中所述的错误。 Curl 和 cJSON 在我的 MBP 上都可以正常编译。我试过包括

-L ./cJSON-master/build

但我得到了同样的错误。

Undefined symbols for architecture x86_64:
  "_cJSON_AddFalseToObject", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_AddItemToArray", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_AddItemToObject", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_AddNumberToObject", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_AddStringToObject", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_CreateArray", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_CreateObject", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_Delete", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_cJSON_Print", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_curl_easy_cleanup", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_easy_init", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_easy_setopt", referenced from:
      _curl_send_audio_cfg in alexa_request_simple_demo-48b802.o
      _curl_downchannel_cfg in alexa_request_simple_demo-48b802.o
      _curl_ping_cfg in alexa_request_simple_demo-48b802.o
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_curl_easy_strerror", referenced from:
      _curl_downchannel_cfg in alexa_request_simple_demo-48b802.o
      _curl_ping_cfg in alexa_request_simple_demo-48b802.o
  "_curl_formadd", referenced from:
      _curl_sync_state in alexa_request_simple_demo-48b802.o
      _curl_send_audio_content in alexa_request_simple_demo-48b802.o
  "_curl_formfree", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_add_handle", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_cleanup", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_fdset", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_info_read", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_init", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_perform", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_remove_handle", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_setopt", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_multi_timeout", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_slist_append", referenced from:
      _curl_send_audio_cfg in alexa_request_simple_demo-48b802.o
      _curl_downchannel_cfg in alexa_request_simple_demo-48b802.o
      _curl_ping_cfg in alexa_request_simple_demo-48b802.o
  "_curl_slist_free_all", referenced from:
      _main in alexa_request_simple_demo-48b802.o
  "_curl_version", referenced from:
      _main in alexa_request_simple_demo-48b802.o
ld: symbol(s) not found for architecture x86_64

【问题讨论】:

    标签: macos cc


    【解决方案1】:

    好的。所以我需要 -l 两个库的 dynlib 文件(noobie 错误)

    gcc -I ./curl-7.58.0/include/curl alexa_request_simple_demo.c -I ./cJSON-master -L ./cJSON-master/build ./libcjson.1.7.1.dylib ./libcurl.4.dylib
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多