簡體   English   中英

g ++忽略頭文件

[英]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進行編譯即可進行調試)。 這里有一些可能性:

  • 如果要為其他平台構建,則問題可能出在某些平台特定的代碼上。
  • 編譯器不兼容:假設您將Xcode與LLVM一起使用,則可能有一些與LLVM一起使用但與gcc有所不同的代碼。 可能性很小(根據我在那些編譯器上的經驗,我可以說它們非常兼容),但仍然可行。

在嘗試使用g++命令之前,請嘗試刪除Xcode構建可能已創建的任何*.gch文件。

但是,總的來說,我會嘗試在不先預編譯頭文件的情況下使工作正常,然后在必要時添加預編譯的頭優化(即,不要將.hpp文件顯式傳遞給編譯器,直到您將一切都可以正常工作,只有在您確實需要的時候才可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM