问题标签 [jam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 果酱和静态库
我需要为静态链接构建Platinum C++ 库。我可以为此提供什么命令来阻塞?
c++ - 构建 boost-python 示例
我正在运行 Ubuntu 13.10 。我安装了 libboost1.54-dev。
我对 Boost 进行了 Git 签出,并对“boost-1.54.0”进行了签出。
我在源代码中将目录更改为 boost/libs/python/example/tutorial。
我跑了“bjam”。我得到:
示例目录中只有三个文件:
说明说它应该就这么简单: http: //www.boost.org/doc/libs/1_54_0/libs/python/doc/tutorial/doc/html/python/hello.html
strace 的最后几行是:
为什么要寻找 boost-build.jam?我错过了什么?
bjam - 有没有办法可视化 boost.build 中的依赖关系?
我有一个使用 boost.build 的大型项目。我想要一种查看特定构建目标的依赖关系树的方法。
例如:
exe foo : foo.c /BAR//LIB : /MEOW//PUB ;
foo 的依赖将包括 /BAR//LIB 的所有要求和 /MEOW//PUB 的所有使用要求。
boost.build 中是否内置了此类功能,或者是否有可用的工具来执行此操作?
c - 未定义的引用 ''
我正在处理一大段代码。当我使用 jam 命令编译代码库时,我收到很多错误,说明代码库中新添加的头文件中未定义对“some_function”的引用。此头文件包括所有其他相关的头文件。在编译代码库之前是否需要对 jam 文件进行更改?
bundlemgr_distrib_im.c:
bundlemgr_distrib_config.h:
bundlemgr_distrib_config.c
构建日志:
另一个错误:
bundlemgr_distrib_acc_private.h(新添加的文件)
bundlemgr_distrib_db_private.h
bundlemgr_distrib_db_api.c
构建日志:
c++ - 使用 Jam 时如何查看 g++ 编译器输出?
我正在使用Jam编译一个项目,似乎无论我设置的调试级别有多高,我仍然无法看到我正在寻找的细节。
我想使用g++
's-M
或-H
flag 来查看包含哪些标头(我想包含来自特殊目录的系统标头),并且我已经测试了这些标头是否有效。我会看到这样的东西:
这使我可以验证我的解决方案在没有 Jam 的情况下是否可以正常工作,但现在我想确认 Jam 没有搞砸任何事情。
我试过jam -d 9 | grep include | grep i686
了,什么也没看到。
这里可能出了什么问题?为什么原始编译器输出如此模糊?
boost - 将多个静态库组合成 Boost Jam 文件中的单个共享库
嗨,我有以下项目 hirarcy:
-Top
------lib1
----------Jamfile
------lib2
----------Jamfile
----- -果酱
libs:lib1 和 lib2 都是静态库(.a),它们的 Jamfile 包含以下命令:
lib $(library) : [ glob *.cpp ] : <link>static ;
现在在 Jamroot 级别,我必须通过组合以上两个静态库来创建一个共享库(.so):lib1.a 和 lib2.a 应该组合并形成一个 libmain.so。
你能告诉我如何在我的 Jamroot.jam 文件中编写所需的 bjam 语句来实现上述目的吗?
macos - jamplus:对于 osx,链接命令行太长
我正在使用 jamplus 构建供应商的跨平台项目。在 osx 上,C 工具的命令行(通过 clang 输入到 ld)太长。
响应文件是命令行太长的经典答案:jamplus 在手册中指出可以即时生成它们。
手册中的示例如下所示:
差不多好了!如果我专门吹掉 C.Link 命令,像这样:
在我的 jamfile 中,我得到了传递给链接器的命令行,但响应文件没有换行终止,因此链接失败(osx ld 需要换行分隔的条目)。
- 有没有办法扩展加入换行符的 jamplus 列表?我试过使用连接扩展
$(LIST:TCJ=\n)
但没有运气。$(LIST:TCJ=@(\n))
也不行。如果我能做到这一点,生成的文件有望是正确的。 - 如果不是,我可以使用什么 jamplus 代码来覆盖 clang 的链接命令,并从列表中动态生成内容?我正在寻找一种侵入性最小的方法来处理这个问题——理想情况下,直接修改/覆盖工具,而不是在需要链接的地方添加新的间接目标——因为它是我们供应商的代码库,所以需要尽可能少的编辑。
c++ - 更改 jam 脚本中的文件扩展名
如何更改 jam 脚本中输入文件的扩展名。在 linux 机器上,我有以下工作代码 -
for 循环中的第一行选择 cpp 文件名并将其扩展名从 更改<File>.cpp
为<File>.obj
. 我需要隐藏这些与 Windows 平台兼容的更改。我认为 boost 构建过程中的一些模块会提供一些方法来做到这一点,但谷歌搜索在这方面没有多大帮助。
我应该在上面的代码中进行哪些更改以objName
包含 obj 文件扩展名,并且这些更改保持跨平台兼容(特别是 win/linux)。
makefile - 从 Makefile 调用 jam 不起作用
在我的makefile中,我试图进入一个不同的目录并使用以下内容调用jam:
这不起作用,但导致“未知目标。请编辑'Jamrules'。” 即使命令行上完全相同的命令运行良好。所以我知道果酱可以找到目标。
我也试过
和具有相同结果的变化。这也可以从命令行完美运行。
任何其他命令而不是“jam”都可以按预期工作(ls、ps、cat、pwd)。
更新:即使在 <somedirectory> 中创建 Makefile 并在那里运行make也会得到相同的结果。
任何关于为什么会发生这种情况的想法都将不胜感激。当然,还有要尝试的事情。
我正在使用最新的 gnu make FT-jam 2.5.2 运行 cygwin。
jam - 使用 Jam 创建文件夹
我在我的项目中使用 jam 来自动在 Visual Studio 中构建。
我正在尝试将子目录和文件从 $folder 移动到 $folder1。$folder 包含一个项目 $folder1 为空。
我使用 File 来复制文件。
我尝试复制这样的文件:
但是 $folder1 是空的并且不包含文件夹结构,因此 File($folder1)\\subdir : ($folder)\\subdir
不会做任何事情,因为 $folder1 是空的。
Jam 有没有办法根据它是否存在来创建一个文件夹?