posts - 88, comments - 3, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          axis2/c的hello.c編譯不過的原因

          Posted on 2015-08-18 17:59 Milo的海域 閱讀(349) 評論(0)  編輯  收藏 所屬分類: LinuxC
          http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#client_api 的hello.c client 編譯命令在我的ubuntu 12.04s上總是報錯
          gcc -o hello -I$AXIS2C_HOME/include/axis2-1.6.0/ -L$AXIS2C_HOME/lib -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver -ldl -Wl,--rpath -Wl,$AXIS2C_HOME/lib hello.c
          /tmp/ccCYikFh.o: In function `main':
          hello.c:(.text+0x57): undefined reference to `axutil_env_create_all'
          hello.c:(.text+0x68): undefined reference to `axis2_options_create'
          hello.c:(.text+0x93): undefined reference to `axutil_strcmp'
          hello.c:(.text+0xeb): undefined reference to `axis2_endpoint_ref_create'
          hello.c:(.text+0x102): undefined reference to `axis2_options_set_to'
          hello.c:(.text+0x13d): undefined reference to `axis2_svc_client_create'
          hello.c:(.text+0x168): undefined reference to `axutil_error_get_message'
          hello.c:(.text+0x193): undefined reference to `axutil_log_impl_log_error'
          hello.c:(.text+0x1b1): undefined reference to `axis2_svc_client_set_options'
          hello.c:(.text+0x1d6): undefined reference to `axis2_svc_client_send_receive'
          hello.c:(.text+0x21d): undefined reference to `axiom_node_free_tree'
          hello.c:(.text+0x238): undefined reference to `axutil_error_get_message'
          hello.c:(.text+0x266): undefined reference to `axutil_log_impl_log_error'
          hello.c:(.text+0x28d): undefined reference to `axis2_svc_client_free'
          hello.c:(.text+0x2a8): undefined reference to `axutil_env_free'
          /tmp/ccCYikFh.o: In function `build_om_request':
          hello.c:(.text+0x2ed): undefined reference to `axiom_element_create'
          hello.c:(.text+0x307): undefined reference to `axiom_element_set_text'
          /tmp/ccCYikFh.o: In function `process_om_response':
          hello.c:(.text+0x337): undefined reference to `axiom_node_get_first_child'
          hello.c:(.text+0x351): undefined reference to `axiom_node_get_node_type'
          hello.c:(.text+0x367): undefined reference to `axiom_node_get_data_element'
          hello.c:(.text+0x381): undefined reference to `axiom_text_get_value'
          hello.c:(.text+0x396): undefined reference to `axiom_text_get_value'
          collect2: error: ld returned 
          1 exit status
          仔細檢查了gcc命令,頭文件,庫文件的路徑都是對的,最后跟同事討論才發現hello.c的位置的問題。。如果hello.c的位置放到了依賴庫的右面 就會報類似錯誤。但是官方的例子應該是測試過的,怎么會有這個問題呢? 難道我的ubuntu 12.04的gcc比較嚴格?

          修正后的gcc命令如下
          gcc -o hello hello.c  -I$AXIS2C_HOME/include/axis2-1.6.0/ -L$AXIS2C_HOME/lib -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver -ldl -Wl,--rpath -Wl,$AXIS2C_HOME/lib
          主站蜘蛛池模板: 岗巴县| 万安县| 蓬溪县| 克东县| 晋江市| 怀来县| 获嘉县| 吐鲁番市| 东台市| 余江县| 沂源县| 恩施市| 上林县| 达州市| 永州市| 沐川县| 界首市| 池州市| 巴林左旗| 金山区| 长子县| 庄浪县| 禹城市| 云林县| 健康| 开远市| 遂昌县| 张掖市| 永嘉县| 冕宁县| 高邑县| 博兴县| 江口县| 大宁县| 横峰县| 岳阳县| 榆中县| 阿克苏市| 安达市| 泗洪县| 安义县|