Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将需要构建的现有库添加到我自己的项目中 我目前正在C++中工作。我使用自动工具,顺便说一句,我是新来的,来制作建筑系统。在我的项目中必须使用具有makefile的现有库。因为它是一个很少使用的库,为了便于移植,我需要在我的项目目录中复制整个源代码,并要求makefile在构建代码之前使用自己的makefile构建库。我该怎么办?我不知道如何在Makefile.am或类似的地方添加代码。任何有用的答案都将不胜感激。_C++_Makefile - Fatal编程技术网

如何将需要构建的现有库添加到我自己的项目中 我目前正在C++中工作。我使用自动工具,顺便说一句,我是新来的,来制作建筑系统。在我的项目中必须使用具有makefile的现有库。因为它是一个很少使用的库,为了便于移植,我需要在我的项目目录中复制整个源代码,并要求makefile在构建代码之前使用自己的makefile构建库。我该怎么办?我不知道如何在Makefile.am或类似的地方添加代码。任何有用的答案都将不胜感激。

如何将需要构建的现有库添加到我自己的项目中 我目前正在C++中工作。我使用自动工具,顺便说一句,我是新来的,来制作建筑系统。在我的项目中必须使用具有makefile的现有库。因为它是一个很少使用的库,为了便于移植,我需要在我的项目目录中复制整个源代码,并要求makefile在构建代码之前使用自己的makefile构建库。我该怎么办?我不知道如何在Makefile.am或类似的地方添加代码。任何有用的答案都将不胜感激。,c++,makefile,C++,Makefile,两部分: 按照库的自述或说明建议构建库。您可能需要选择一些选项来生成可接受的共享库风格 在项目中,将输出共享库添加为要包含的库。您可能还需要在其中添加一个声明文件(.h) 在(IMHO)罕见的情况下,将库直接包含到您的项目中可能是有利的。但是,要抵制这种冲动:它通常会给符号带来麻烦(名称空间污染和namimg冲突),并打乱关于接口应该如何工作的假设。这也使得源代码控制更加困难 使用建议的项目分离(您的项目与库项目),如果库发生更改,通常需要一定程度的智能来有条件地重建项目。这可以通过一个封装的m

两部分:

  • 按照库的自述或说明建议构建库。您可能需要选择一些选项来生成可接受的共享库风格

  • 在项目中,将输出共享库添加为要包含的库。您可能还需要在其中添加一个声明文件(.h)

  • 在(IMHO)罕见的情况下,将库直接包含到您的项目中可能是有利的。但是,要抵制这种冲动:它通常会给符号带来麻烦(名称空间污染和namimg冲突),并打乱关于接口应该如何工作的假设。这也使得源代码控制更加困难


    使用建议的项目分离(您的项目与库项目),如果库发生更改,通常需要一定程度的智能来有条件地重建项目。这可以通过一个封装的makefile来完成,该makefile首先调用
    make_库
    ,然后调用
    makemyproject
    。或者,您可以手动调用适当的makefile,这将更加方便,因为库一旦正常工作,可能不需要任何工作。

    是否有可能使用shell脚本?你能详细说明一下你的目标构建环境吗(Windows[MinGW/Cygwin]/GNULinux或MacOS)?据推测,它可以在Linux和MacOS上运行。我现在正在MacOS上编写代码。在我的例子中,它们实际上是相同的,因为我几乎只使用GNU工具链并使用macports管理包@Ameyavs你能用编辑按钮更新问题并提供必要的细节吗?看到这个我觉得你的建议很好。简单干净。我会照办的@沃利克