[英]g++ ignoring header files
所以我試圖用g ++創建一個exec。 我的命令如下:
g++ -o project21 main.cpp tools.hpp file.hpp FileInfo.cpp file.cp tools.cpp
我得到一個錯誤
ld: warning: ignoring file tools.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: ignoring file file.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
這里的行為是奇怪的是,我可以在XCode中對其進行編譯,而使用exec恰好就在我遇到問題的shell中。
您無需編譯hpp文件。 將它們包括在您的.cpp文件中。
即使您將hpp包含在項目中,Xcode也不會編譯它們,除非您明確要求(我的Mac正在運行,但是如果我記得單擊該項目(左側樹的根目錄),請單擊目標並檢查標簽的構建階段,其中包含要編譯的文件的列表。
關於分段錯誤,如果它缺少源文件(即,您在.hpp文件中添加了實際上應該在.cpp文件中的代碼),則將得到鏈接錯誤,而不是分段錯誤。 分段錯誤還有其他原因,可以在GDB上運行並對其進行調試(使用-g進行編譯即可進行調試)。 這里有一些可能性:
在嘗試使用g++
命令之前,請嘗試刪除Xcode構建可能已創建的任何*.gch
文件。
但是,總的來說,我會嘗試在不先預編譯頭文件的情況下使工作正常,然后在必要時添加預編譯的頭優化(即,不要將.hpp
文件顯式傳遞給編譯器,直到您將一切都可以正常工作,只有在您確實需要的時候才可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.