添加下载的c++源代码到我的项目时的良好实践
Good practices when adding downloaded c++ source code to my project
我正在尝试使用gnuplot++,但这实际上是一个关于下载源代码的更一般的问题。我已经下载了gnuplot++源代码,它由多个。h和。cc文件组成。我想在将来的其他复制项目中使用它,所以我不愿意将所有文件添加到我的项目目录中。
据我所知,gcc将在/usr/local/include中查找头文件,所以我现在已经将代码放在那里。但是编译和链接代码的最佳方式是什么呢?
- 我应该使用makefile来包含源代码的目录吗?
- 我应该把它放在一个容易找到的地方,比如/usr/local/include?
- 我如何知道编译gnuplot++代码的最佳方法?
通常,如果项目本身没有附带安装说明,我通常将它添加到"公共"的地方,例如/usr/local/project/{lib,include,src,...}
,在这种情况下,"项目"将是gnuplot++。
对于一般做法,是的,将gnuplot++(或任何其他类似的第三方项目)的源代码与您自己的应用程序源代码分开。这使得管理第三方项目的更新等变得更加容易。
是的,我会使用makefile为您的应用程序也包括gnuplot++的头路径,我不会直接复制这些文件到/usr/local/include。相反,我会考虑两个选项:什么都不做,并将makefile中的包含路径指向gnuplot++目录,或者在/usr/local/include中放置符号链接以指向gnuplot++文件。
至于编译gnuplot++的最佳方法,我必须亲自查看gnuplot++,看看它有什么要说的,可能是在一个README文件或类似的文件中。
通常,当使用第三方库时,您根据下载的源代码附带的安装说明构建和安装这些库。
如果没有安装指南,它通常是一组步骤,如
./configure
make
make install
那么库就有责任确保相关的头文件和库文件在你的项目中可以很容易地找到。
gnuplot++是一个例外,因为它似乎没有自己的构建结构。
在这种情况下,最好的建议是将gnuplot++的源代码放在项目中的一个目录中(可能与您自己的源代码并行),并将这些文件包含在您自己的构建设置中。
- cmake在我的项目中所需的所有静态库都不成功
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 编译器现在遵循C++14标准,我的项目不再编译神秘的SFML错误
- 如何在我的项目中从 CMAKE 中的同一项目获取多个库
- 为什么我的项目没有保存名称中所做的修改
- 如何将我的小程序转换为用于项目的函数?
- 如何在我的 Visual C++ 项目中使用 .a 文件
- 如何自动获取我的项目的路径并删除一些文件
- Qt - 为什么Visual Studio 2019在qml资源中添加10Mb文件后无法再编译我的项目?
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- 我怎样才能简单地将opencv 包含在我的项目中与CMake
- 我的快速排序在对预排序的项目进行排序时失败,如何改进?
- 部署基于 qt 的项目后,我的 sqlite3 文件不会被复制 (android)
- 如何将外部 dll 添加到我的 VS2019 项目?
- 如何在Cmake中正确查找头路径,以便在我的项目中构建Box2D
- 阻止我的项目调用__CxxFrameHandler3(CRT函数)
- 我的项目中某些仅标头文件不能包含使用 CMake 和 Vscode 的"SFML/Graphics.hpp"
- 如何从支持linux/mac操作系统的第三方代码为我的c#项目创建dll
- 如何在bazel中同时处理外部依赖项和我的项目