如何从库路径自动编译源文件而又不生成.o,.a和.so文件?

时间:2019-01-29 03:44:28

标签: c++ arduino g++ simulator

我正在尝试编译一个main.cpp文件,该文件具有一些第三方库(有些是我自己构建的),但是我不能离开.o.a或源目录中的.so个文件。

我的测试和搜索将我带到一个怪异的解决方案,在该解决方案中,我应将每个.cpp文件都包含到g++命令行中。

./main$ g++ -o test.run -I./../src ./../src/*.cpp main.cpp

我发现了有关使用-L编译器的g++选项的一些信息,但是据我了解,它仅适用于静态归档库(.a)或共享对象({{ 1}})。

只要这些库应该用作Arduino库,我不认为我应该将这些文件留在它们的目录中,而且,我也不想每次进行一些小的更改时都在那里重新编译制成。

有什么方法可以编译这些文件而无需手动添加每个.so文件?考虑到可能并非必须包含所有文件(因为我的最终目标是构建一个模拟器)。也许像这样:

.cpp

在这种情况下,有关编译标签的任何提示也可能有用吗?


PS:我可以处理每次更改时的重新编译,./main$ g++ -o test.run -I./../src -L./../src/ main.cpp没关系,但是由于我要使用一些预处理程序指令,所以我对此不太满意,因为有时必须准备在arduino中运行,有时在PC中运行;

PPS 。:我的最终目标是建立一个arduino simple port and software simulator,它已经可以工作了,这是我害怕将那些附加文件放在那里的主要原因,这些库必须在arduino上继续编译,并且必须留在arduino包含路径中。


我的测试目录树是:

make

. ├── main │ └── main.cpp └── src ├── source.cpp └── source.h 文件内容:

main.cpp

#include <source.h> int main() { Just one; return 0; } 文件内容:

source.h

#ifndef _SOURCE_H #define _SOURCE_H #include <iostream> class Just { public: Just(); }; #endif 文件内容:

souce.cpp

0 个答案:

没有答案