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
          主站蜘蛛池模板: 凉城县| 常德市| 桓仁| 乐清市| 巴楚县| 宁远县| 连南| 凤凰县| 新兴县| 长寿区| 崇明县| 保山市| 通渭县| 江孜县| 田阳县| 连平县| 云阳县| 灌南县| 和静县| 德江县| 巴彦县| 卢龙县| 紫金县| 河北省| 武汉市| 兴隆县| 梁平县| 海盐县| 广宁县| 太保市| 句容市| 西平县| 通州区| 逊克县| 梧州市| 瓮安县| 册亨县| 兴业县| 仁怀市| 南充市| 合阳县|