C++ 如何使用G++;在另一个目录中编译具有依赖项的.cpp文件
我的项目组织方式如下:C++ 如何使用G++;在另一个目录中编译具有依赖项的.cpp文件,c++,directory,compilation,dependencies,C++,Directory,Compilation,Dependencies,我的项目组织方式如下: mainfolder | |_main.cpp | |_subfolder | |_foo.hpp |_foo.cpp |_bar.hpp |_bar.cpp main.cpp使用foo.hpp和bar.hpp中的函数和变量,它们的函数实现分别在foo.cpp和bar.cpp中 我想知道如何使用g++编译main.cpp 谢谢:)您可以自
mainfolder
|
|_main.cpp
|
|_subfolder
|
|_foo.hpp
|_foo.cpp
|_bar.hpp
|_bar.cpp
main.cpp使用foo.hpp和bar.hpp中的函数和变量,它们的函数实现分别在foo.cpp和bar.cpp中
我想知道如何使用g++编译main.cpp
谢谢:)您可以自己编译main,如下所示:
g++-c main.cpp-Isubfolder-o main.o
这一行将main.cpp编译成一个对象文件(不是应用程序),但它为它提供了一个路径(-I
),在该路径中它可以修改include文件
然后,您可能还希望将其他两个文件编译为对象:
g++-c子文件夹/foo.cpp-Isubfolder-o foo.o
g++-c子文件夹/bar.cpp-Isubfolder-o bar.o
其中-c
标志表示仅编译(而非链接)。因此,您可能希望将对象链接在一起:
g++main.ofoo.obar.o-omyapp
或者在一行中:
g++main.cpp子文件夹/foo.cpp子文件夹/bar.cpp-Isubfolder-o myapp
当您想要创建一个模式规则来编译文件(使用gnu make)时,第一种方法(分两步完成)通常更容易,第二种方法(在一行中)更容易手动完成您想要构建对象文件,还是只构建可执行文件
main
?您希望在何处生成文件?g++main.cpp子文件夹/foo.cpp子文件夹/bar.cpp-o outputname