C++ 如何在C+中编译和链接分开的.h和.cpp文件+;使用命令行?

C++ 如何在C+中编译和链接分开的.h和.cpp文件+;使用命令行?,c++,g++,C++,G++,我想使用文件夹来分离函数定义和函数头,但是我得到一个致命错误,说找不到“x.h”。下面提供的文件名只是示例。这可能吗 这是我正在使用的行: g++ -I ./headers/ -o main2.o main2.cpp ./definitions/x.cpp 如果您确定在正确的路径中有正确的文件,则一个问题是:- -I后面不应该有空格,只使用/headers g++ -I./headers -o main2.o main2.cpp ./definitions/x.cpp ^^No

我想使用文件夹来分离函数定义和函数头,但是我得到一个致命错误,说找不到“x.h”。下面提供的文件名只是示例。这可能吗

这是我正在使用的行:

g++ -I ./headers/ -o main2.o main2.cpp ./definitions/x.cpp 

如果您确定在正确的路径中有正确的文件,则一个问题是:-

-I
后面不应该有空格,只使用
/headers

g++ -I./headers -o main2.o main2.cpp ./definitions/x.cpp 
      ^^No Space

如果您确定在正确的路径中有正确的文件,则一个问题是:-

-I
后面不应该有空格,只使用
/headers

g++ -I./headers -o main2.o main2.cpp ./definitions/x.cpp 
      ^^No Space

你能描述一下你的源目录布局吗?main2.cpp在父目录中,而headers/和definitions/是这个父目录的子目录,比如solver/。你能描述一下你的源目录布局吗?main2.cpp在父目录中,headers/和definitions/是这个父目录的子目录,比如说,解算器/
-Iheaders
应该足够了。
/
的两个实例都是多余的。@Marcelocontos,这是真的,但我发现在实践中在
-I./pathflibrary
-lnameoflibrary
之间画一个更大的视觉区别是非常有用的,
/
是一个非常好的方法。:)当
-I
folderPath/
之间有空格时,g++不会抱怨。即使没有空间,它也能工作。两者似乎都很好。与快捷方式相比,我更喜欢可读性(除了文件路径。hello符号链接)。@Omnipotentity:这是一个很好的观点,尽管我不得不说我在实践中从未遇到过这个问题。
-Iheaders
应该足够了。
/
的两个实例都是多余的。@Marcelocontos,这是真的,但我发现在实践中在
-I./pathflibrary
-lnameoflibrary
之间画一个更大的视觉区别是非常有用的,
/
是一个非常好的方法。:)当
-I
folderPath/
之间有空格时,g++不会抱怨。即使没有空间,它也能工作。两者似乎都很好。与快捷方式相比,我更喜欢可读性(除了文件路径。hello符号链接)。@Omnipotentity:这是一个很好的观点,尽管我不得不说我在实践中从未遇到过这个问题。