所以我试图用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中我遇到了问题。
答案 0 :(得分:1)
您不需要编译hpp文件。将它们包含在.cpp文件中。
即使你在你的项目中包含了hpp,Xcode也不会编译它们,除非你明确要求它(我的mac在工作,但如果我记得点击项目(左边树的根)),单击目标并检查选项卡构建阶段,有一个列表包含要编译的文件。
关于分段错误,如果缺少源文件(即,您在.hpp文件中添加了真正应该在.cpp文件中的代码),那么您将收到链接错误,而不是分段错误。分段错误还有其他原因,在GDB上运行并对其进行调试(使用-g进行编译以便能够调试)。以下是一些可能性:
答案 1 :(得分:0)
尝试删除在尝试*.gch
命令之前可能由Xcode构建创建的任何g++
文件。
但是,一般情况下我会尝试在没有预先编译头文件的情况下工作,然后在必要时添加预编译的头优化(即,不要将.hpp
文件传递给明确的编译器,直到你有其他一切工作,只有你真的需要)。