我是進行多文件編譯,調用了兩個開源庫函數。我在我自己的虛擬機上的Fedora系統上能夠編譯連接通過并順利執行,但是切換到Ubuntu系統的時候,各個文件單獨編譯能夠編譯通過,但是把各個目標文件連接成可執行文件的時候卻報錯,undefined reference to所有的引用的庫函數。
為博州等地區用戶提供了全套網頁設計制作服務,及博州網站建設行業解決方案。主營業務為做網站、成都網站制作、博州網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!于是我搜索了各種相關問題的原因,并一遍一遍地嘗試,最終在調整了連接命令的順序之后在Ubuntu上連接通過。我的Makefile文件中連接生成可執行文件命令如下:
$(CC) $(CFLAGS) -I$(INCLUDEX) -I$(INCLUDEH) -L$(LOCAL) $(LIB) $(OBJECTS) -o s3
這在Fedora下能夠連接正確;但是在Ubuntu下報錯。于是我修改成了如下語句:
$(CC) $(CFLAGS) -I$(INCLUDEX) -I$(INCLUDEH) -L$(LOCAL) -o s3 $(OBJECTS) $(LIB)
連接成功!
其中OBJECTS= object_response_header.o request_analysis.o bucket_response_header.o delete_bucket.o xml.o container.o
我想這可能和Fedora以及Ubuntu的連接機制不同,僅供參考。
當前名稱:多文件編譯中undefinedreferenceto庫函數問題-創新互聯
標題路徑:http://vcdvsql.cn/article24/ppdce.html
成都網站建設公司_創新互聯,為您提供企業建站、建站公司、App開發、云服務器、虛擬主機、自適應網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯