标签: waf

在OSX上使用Waf编译OpenGL/SDL应用程序时如何禁止'-arch','x86_64'标志?

我需要压制"-arch x86_64 -arch i386"标志Waf传递给GCC.

我正在构建一个SDL/Opengl应用程序.如果我链接32位SDL运行时我得到错误

    Undefined symbols for architecture i386:
  "_SDL_Quit", referenced from:
      __del_video in SDL_functions.c.2.o
      __init_video in SDL_functions.c.2.o
Run Code Online (Sandbox Code Playgroud)

如果我链接到64位SDL运行时,我会收到错误"架构x86_64的未定义符号"

编译器显然使用标志

-arch x86_64 -arch i386
Run Code Online (Sandbox Code Playgroud)

据我所知,这会导致OSX上的GCC尝试编译这两种架构.我想编译为64位,或编译为32位.如何抑制一个架构的标志?

opengl macos sdl waf

21
推荐指数
1
解决办法
1745
查看次数

在大型项目中选择Scons和Waf

我们正在考虑将一个非常大的项目从使用GNU Make转换为更现代的构建工具.我目前的建议是使用SCons或Waf.

目前:

  • 建造时间约为15分钟.
  • 大约100名开发人员
  • 大约10%的代码是C/C++/Fortran休息是Ada(使用gnatmake).

改进的潜在希望/收益是

  • 共享编译器缓存可缩短构建时间并需要磁盘空间
  • 维护更方便

SCons能否很好地完成这项任务?我已经看到它的评论没有缩放,也不像Waf.然而,这些已经有几年了.过去几年中,scons的表现有所增加吗?如果没有,与Waf相比,其表现不佳的原因是什么?

python caching build-tools scons waf

16
推荐指数
3
解决办法
6619
查看次数

C项目的CMake或Waf

我们正在寻找适当的构建工具,用于在D(使用Qt工具包)中编写桌面GUI应用程序,该工具包由几个本地库组成,使用第三方C-lib.它必须建立在Linux(本机开发)和Mac以及Windows上.我们可能会将Code :: Blocks作为IDE.

Waf已经支持D语言,而CMake只是接收它cmaked2.

CMake使用特殊语言,而Waf是纯Python ... Otoh,CMake,通过CPack,可以生成多种格式的包以及用于例如Windoze的GUI安装程序.

任何利弊,你会用什么?

由于速度原因和autoconf,我们排除了Scons,因此,请仅针对CMake/waf提出建议.

更新:虽然这里没有收到任何回复,但我们正在其他地方进行研究,做了一些阅读和测试,并决定使用Waf(1.6.发布就在附近).

build-automation build-process d cmake waf

13
推荐指数
2
解决办法
2622
查看次数

为什么没有人为脑死亡创建一个开源构建系统?

我想建立一个共享库.GNU/Linux是开发和目标平台.C是实现语言.

我无法决定如何设置构建系统并继续围绕三个选项,每个选项都有很多不喜欢的理由:

  • 手工制作的Makefile - 我过去几乎都是这样做的
  • GNU Autotools - 我今年早些时候使用autotools来构建一个共享的C库,但是忘记了我是如何做到这一点的,以及我用于搜索的所有数百个教程.
  • waf - 据说简单但不那么容易我今天下午工作了.

我无法决定去哪.我会选择一个,开始工作然后遇到问题,并决定其他系统更好.我卡住了卡住了.有人可以解释一下这可能有助于我解决这个问题吗?

build autotools configure waf

12
推荐指数
3
解决办法
2288
查看次数

cmake vs waf for C++项目

我发现了类似的话题:Autotools,Cmake和Scons之间有什么区别?,但我的问题有点其他,我认为答案也可能是其他问题.

我发现很多文章都说waf是unstalbe(API更改),尚未准备好生产等(但所有这些文章都是2或3年).

如果我愿意,应该使用以下哪些构建工具:

  • 创建大型C++(11)项目 - 比方说一个复杂的编译器
  • 与LLVM一起使用
  • 确保它灵活易用
  • 确保它会快速实现
  • 在所有标准平台下编译(基础平台是Linux,但我想在Windows和MacOSX下编译)

阅读了很多文章,我发现了Cmake并且发现了"最好的"工具,但我没有使用它们,很难找到任何比较,这不是很偏颇(比如scons作者的比较)和不是很老.真的

c++ build-automation build cmake waf

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

如何使用Python在Windows命令提示符下使用颜色?

我正在尝试修补一个waf问题,Windows命令提示输出在它应该是的时候没有着色.我正在试图找出如何实际实现这个补丁,但我找不到足够的资源 - 有人能指出我正确的方向吗?

更新1

请不要提出任何需要Cygwin的建议.

python windows command-prompt waf

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

如何使用waf构建共享库?

我想使用waf构建一个共享库,因为它看起来比GNU autotools更容易,更简洁.

到目前为止,我实际上有几个与我开始写的wscript有关的问题:

VERSION='0.0.1'
APPNAME='libmylib'

srcdir = '.'
blddir = 'build'

def set_options(opt):
 opt.tool_options('compiler_cc')
 pass

def configure(conf):
 conf.check_tool('compiler_cc')
 conf.env.append_value('CCFLAGS', '-std=gnu99 -Wall -pedantic -ggdb')

def build(bld):
 bld.new_task_gen(
  features = 'cc cshlib',
  source = '*.c',
  target='libmylib')
Run Code Online (Sandbox Code Playgroud)

包含的行source = '*.c'不起作用.我必须指定每个.c文件而不是使用通配符吗?

我怎样才能启用调试版本(目前wscript正在使用调试版本CFLAGS,但我想让最终用户选择它).

计划将库源放在子目录中,以及在每个子目录中使用lib的程序.

c linux shared-libraries waf

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

有没有办法使用pydev调试子进程?

我正在使用Eclipse/PyDev试图找到一种方法来调试subprocess.Popen用于创建子进程的代码:我希望能够调试创建的子进程.问题是我无法找到一种调整跨进程边界的方法,我猜它实际上是不可能的.不过,在你问之前,你永远不会知道,所以我正在做!

一点背景:我有驱动的复杂的构建过程WAF它调用我们的单元测试通过调用出鼻子的要求:我要挂接到这些程序调试单元测试失败.我知道我可以尝试直接运行鼻子,但问题是我必须配置我们的模块正确加载的环境是相当复杂的,我不想复制代码,如果我可以避免它.

我知道远程调试模式,但这非常不方便,因为我必须在远程进程中手动调用调试器.如果有人知道如何做我正在尝试做的事情,那将非常感激.

python eclipse debugging pydev waf

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

Waf生成Visual Studio项目?

Waf构建系统能为C/C++生成Visual Studio项目文件吗?

c c++ build-process waf visual-studio

10
推荐指数
2
解决办法
4020
查看次数

gdb没有找到clang ++编译的源文件

使用clang ++编译项目时,源文件的路径显然不包含在目标代码中.这意味着gdb无法找到显示代码的源文件.对于特定的实例,我可以使用gdb的directory命令添加目录,但我的项目有很多源目录,这很快就会烦人.

当我将配置切换为使用g ++时,gdb只是查找我的所有源文件.

这个功能在Snow Leopard上使用了clang ++ 2.9,但在Lion上不适用于clang ++ 3.1.我有XCode 4.3.2.

是否有一个clang选项强制在目标文件中使用完整路径?我的配置可能还有其他问题吗?

c++ macos gdb clang waf

8
推荐指数
1
解决办法
3392
查看次数