标签: scons

建立jsoncpp(Linux) - 我们凡人的指示?

我正在尝试在Ubuntu 10.x上构建jsoncpp - 但是'指令'有时是模糊的.例如,在构建lib之前,不清楚scons.py文件需要驻留在哪个文件夹中.

有人可以概述构建jsoncpp库所需的步骤吗?在Linux上,或者如果没有这个,如果有人知道有这个信息的任何在线资源,请分享链接.

c++ python linux json scons

12
推荐指数
2
解决办法
1万
查看次数

坚持在Mavericks上安装MongoDB OSX 10.9 brew安装在scons线上挂起

brew install mongodb
==> Downloading http://downloads.mongodb.org/src/mongodb-src-r2.4.8.tar.gz
Already downloaded: /Library/Caches/Homebrew/mongodb-2.4.8.tar.gz
==> Downloading patches
######################################################################## 100.0%
######################################################################## 100.0%
==> Patching
patching file src/third_party/v8/SConscript
patching file src/third_party/v8/src/spaces.h
==> scons install --prefix=/usr/local/Cellar/mongodb/2.4.8 -j4 --64 --cc=/usr/bin/clang --cxx=/usr/bin/clang++ -stdlib=libstdc++
Run Code Online (Sandbox Code Playgroud)

无限期挂起(10分钟+).

以下是流程:

PID TTY           TIME CMD
428 ttys000    0:00.14 -bash
439 ttys001    0:00.14 -bash
425 ttys002    0:00.20 -bash
2472 ttys002    0:00.12 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 /usr/local/Library/brew.rb inst
2491 ttys002    0:00.17 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 -I /usr/local/Library/Homebrew 
2517 ttys002    0:08.25 python /usr/local/bin/scons install --prefix=/usr/local/Cellar/mongodb/2.4.8 -j4 --64 --cc=/usr/bin/cla
2583 ttys002    0:00.02 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib= …
Run Code Online (Sandbox Code Playgroud)

scons mongodb osx-mavericks

12
推荐指数
2
解决办法
6950
查看次数

是否有SCons的库/框架?

使用SCons的每个项目似乎都在重新发明轮子.我很乐意采用某些目录布局和/或变体构建(调试/发布)和/或测试框架和/或最佳实践的解决方案.

即使是一些不太简单的例子也会有所帮助.

build-process scons

11
推荐指数
2
解决办法
1092
查看次数

如何使用SCons创建符号链接?

我正在使用SCons构建项目,需要通过env.Install添加一个符号链接到它正在安装的文件.什么命令会产生一个相当于ln -s在命令行上运行的链接?

symlink scons

11
推荐指数
2
解决办法
3276
查看次数

使用SCons构建真正的层次结构?

所以我在这里阅读了有关分层构建的问题,例如:使用SCons创建分层构建

我想做两个独立的回购的真正的分层构造,它们都使用我设置为使用mercurial的子回购的scons.下面是说明我想要做什么的文件布局.

期望的布局:

project_root/  (new project that builds bar app using the libfoo built from source)

    libfoo_subrepo/  (standalone project repo from bitbucket)
        src/
            SConscript
            libfoo.c
            libfoo.h
        test/
            SConscript
            test_foo.c
        SConstruct

    barapp_subrepo/  (standalone project repo from bitbucket that uses libfoo)
        src/
            SConscript
            bar.c
            bar.h
        test/
            SConscript
            test_bar.c
        SConstruct

    test/
        SConscript
        test_bar_with_foo.c
    SConstruct
Run Code Online (Sandbox Code Playgroud)

所以我有两个单独的回购,都使用scons.第一个是libfoo,可以单独克隆并使用scons构建.当在libfoo根目录中运行scons时,它在src /中构建一个libfoo的静态库,并在test /中构建一个单元测试可执行文件,链接到src /中的静态库.

第二个回购有依赖libfoo的酒吧应用程序.它也可以单独克隆,如果在构建系统上安装了libfoo,它可以使用scons构建.

我想要做的是设置一个新的repo(project_root),它使用mercurial将libfoo和bar app repos设置为subrepos.所以当你克隆这个新的repo时,它会自动拉下bar app和它的依赖,libfoo.然后我希望能够在这个新的repo的根目录中运行scons并让它在libfoo_subrepo/root中执行scons来构建libfoo并进行单元测试.然后我希望它在barapp_subrepo/root中运行scons来构建栏并告诉它链接libfoo_subrepo/src /中的libfoo静态库.最后,我希望它在测试中构建一些新的单元测试/使用libfoo静态库和bar app中的源文件来组合测试bar app和libfoo.

据我所知,从阅读scons文档可以看出,我需要为"subrepo"创建一个自定义Builder,它将在子shell中运行scons.然后我可以将libfoo.subrepo和barapp.subrepo添加到project_root /目录以及一些方法,以便当构建器执行命令构建libfoo.subrepo时,它将源名称转换为它执行scons的路径.

building 'libfoo.subrepo' translates into executing 'cd libfoo_subrepo; scons'
Run Code Online (Sandbox Code Playgroud)

在我看来,scons无法递归地构建独立的scons项目.我读过的所有内容都假定您能够在子文件夹中创建SConscript文件,然后让根SConstruct文件依赖于SConscript文件.请告诉我有办法用scons做我想做的事.我不想回去做.

谢谢.

python build scons build-script

11
推荐指数
1
解决办法
3275
查看次数

如何告诉scons使用MinGW而不是MSVC

我正在尝试在Windows上构建zxing的C++端口,但是scons失败了:

cl : Command line error D8021 : invalid numeric argument '/Wextra'
Run Code Online (Sandbox Code Playgroud)

我安装了VS2010和MinGW,并且scons尝试使用MSVC编译器,即使SConscript文件假定gcc并使用gcc特定的参数,这会导致错误.

我如何告诉scons使用MinGW?

mingw compiler-errors scons visual-studio zxing

11
推荐指数
1
解决办法
4225
查看次数

SCons或CMake而不是qmake

我在以下问题上需要一些建议:

我有一个QT项目,目前设置为与qmake很好地配合.但是,由于项目的要求和未来方向的扩展,我需要更改它的构建系统,因为应用程序将需要对其构建方式进行一些更改.

现在每个源文件都被编译成一个非常大的可执行文件,这是打包(手动)并发送到下载区域.一切都很好.

但我的目标是以一种方式模块化应用程序,即每个"功能"将被编译成共享库,用户(开发人员)将能够选择他想要编译的组件.这些"功能"放在源代码树的目录中(例如:query_builder,reverse_engineer,mysql_DB_support,version_managemen目录等等),当用户构建应用程序时,他只是告诉构建系统使用查询构建器编译应用程序和mysql,但没有反向工程师,在这种情况下,构建系统从指定的目录添加源文件并从中创建一个lib.

我还有其他要求,例如:

  • windows build,linux build
  • 可选的包构建(deb,rpm)
  • 支持QT和可能的QT5
  • 多个可执行文件(GUI客户端,CLI客户端)

经过一些"市场调查"后,我最终将CMake和SCons作为我可能使用的两种可能的系统.我有一些CMake经验和一些python经验,但还没有SCons.

但我不知道哪一个最适合我的情况,这是我需要你帮助的地方.你能详细说明我应该使用哪一款?如果您认为我的要求可以通过qmake实现,请告诉我,

干杯,f.

qmake cmake scons

11
推荐指数
1
解决办法
4458
查看次数

如何在python3环境中执行scons?

我需要在 scons 脚本中导入 python3 脚本。(我使用 scons v3.0.1.7)

有没有办法用 python 3 执行 scons ?

官方 scons 网站说

这将是第一个支持早于 2.7 和 3.5+ 的 Python 版本的版本

scons -python /usr/bin/python3选择 python 解释器之类的东西会很好。

我也没有找到如何为 python3 构建 scons 版本。

scons python-3.x

11
推荐指数
2
解决办法
1万
查看次数

在Windows和Linux上构建C++

我参与了面向Windows和Linux(RHEL)平台的C++项目.到目前为止,开发完全是在Visual Studio 2008上完成的.对于Linux编译,我们使用第三方Visual Studio插件,它读取VS解决方案/ perojects文件并在Linux机器上远程编译.

最近决定放弃第三方插件.

现在我最关心的是构建系统.我正在寻找跨平台构建工具.这样我就不需要维护两组构建文件(例如Windows的vcproj/solution和Linux的make文件).

我找到了以下候选人:a.Scons b.cmake的

您如何看待跨平台开发的工具?

令我困扰的另一点是Visual Studio(+ Visual Assist)在没有vcproj文件的情况下会丢失很多功能 - 你如何处理这些工具的问题?

谢谢迪马

PS 1:我喜欢Scons的一点是它(a)使用python,因此它很灵活,而cmake使用适当的语言(我知道它不是构建系统的赢家特征)(b)自包含(不需要)像在cmake上一样在Linux上生成makefile.

那么为什么不是Scons?为什么在你的项目中决定使用cmake?

c++ build-process cross-platform cmake scons

10
推荐指数
1
解决办法
6991
查看次数

如何使用scons进行源代码构建?

我一直在使用cmake从源代码构建我的项目,这非常方便,因为您避免使用不必要的文件污染源目录.

假设CMakeLists.txt在当前目录中,可以按如下方式完成:

mkdir build
cd build
cmake ..
make
Run Code Online (Sandbox Code Playgroud)

我怎样才能在scons中做同样的事情?

scons out-of-source

10
推荐指数
1
解决办法
3623
查看次数