使用GCC和Clang,我能够使用SCONS" TRYCOMPILE"功能来构建简单的配置检查以确定当前配置的编译器是否支持给定的编译标志.基本上,克隆env,将相关标志添加到CFLAGS,CCFLAGS或CXXFLAGS(纯适当地)执行TryCompile,如果TryCompile成功,则支持标志,我们可以将其添加到真实的Env. 中. 这与GCC完美搭配,因为未知标志是错误,并且编译器以非零状态退出. 使用clang,它也可以很好地工作:默认情况下,Clang将未知错误视为警告,但是如果您通过它 - Werror - Werror会将未知的标志变成错误.因此,如果我知道我们正在使用clang,我的包装器围绕着trycompile总是通过-Werror以及要测试的标志. 但是,这一切都归功于Microsoft工具链您将旗帜传递给警告错误.由于编译退出是否干净地载有或未接受标志,因此TryCompile始终会成功.参见这个问题有关我以非零状态退出MSVC的各种尝试的详细信息.
以下是关于 configure 的编程技术问答
我正在尝试从命令行编译Zlib,并且使用-Wall -Wextra -Wconversion(完整的交叉编译脚本在下面)得到此消息: 编译器错误报告对./configure太苛刻(也许删除 -Werror). 这是生成该行的配置测试: cat > $test.c > configure.log if try $CC -c $CFLAGS $test.c; then : else echo "Compiler error reporting is too harsh for $0 (perhaps remove -Werror)." | tee -a configure.log leave 1 fi 对我来说尚不清楚到底被认为是什么太严厉(尤其是因为-Werror不
好吧,这个问题一直使我发疯了一个星期!我希望我们能一起找到一个解决方案. 我正在尝试将WAMP服务器配置为在本地网络上运行(可以从本地网络访问).具体来说,我想使用局部连接从另一台计算机中访问保存在/www文件夹中的项目.我正在为Wamp服务器使用Windows 7.但是,当我运行" 192.168.178.3:8080"时,我会收到以下错误: 禁止:您无权访问/在此服务器上. 我在端口8080 上运行wamp(IIS使用端口80); 我本地的IP地址是 192.168.178.3 我将尝试解释到目前为止所做的事情... 在httpd.conf中更改了以下内容: Listen 192.168.178.3:8080 Options FollowSymLinks AllowOverride None Order deny,allow Allow from all
我正在尝试安装pyrearn2软件包(/).我在Windows 7(x64)中使用Winpython-64bit-3.4.4.1进行操作.首先,有一个错误说:"需要Microsoft Visual C ++ 10.0(无法找到vcvarsall.bat)".然后,我安装VS2012并配置环境变量.我执行" Python Setup.py开发"后,存在一个新错误,如下所示: E:\WinPython-64bit-3.4.4.1\download\pylearn2>python setup.py develop WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to exe cute optimized C-implementations (for both CPU and GPU) and will default to Pyth on implementations. Performa
我试图构建QT,因为Visual Studio 2010所需的QT.构建脚本(configure.exe)非常简单,但默认情况下,编译需要年龄.在使用SSD的快速笔记本上等待一个小时后,我已经放弃了(不使用标志,只需配置.exe). 基本轻量级QT应用程序的推荐标志是什么?我的意思是对于一个学习QT的人,他不需要 webkit 等等. 我已经收集了我发现的最有用的链接: QT配置的参考页面: ben来自这个问题的建议: with Visual C ++ 2010 -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-multimedia -no-qt3support -fast-fast -fast -fast-fast rubenvb来自这个问题的建议:如何将QT编译成静态 禁用调试:-release 禁用您不需要的模块,尤其是qtwebkit:-no-web
最近升级为Fedora 23 后,我试图在用户DIR中构建VIM 我有ncurses和ncurses-devel [root@statquant-laptop lib]# dnf install ncurses Last metadata expiration check performed 1:09:48 ago on Sat Jan 9 10:33:06 2016. Package ncurses-5.9-21.20150214.fc23.x86_64 is already installed, skipping. Dependencies resolved. Nothing to do. Complete! [root@statquant-laptop lib]# dnf install ncurses-devel Last metadata expiration check performed 1:09:58 ago on Sat Jan 9 10:33:06 2
您好,我试图为Android-Arm构建Valgrind.在Linux Mint 13上,它失败了: $ make echo "# This is a generated file, composed of the following suppression rules:" > default.supp echo "# " exp-sgcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.X.supp >> default.supp cat exp-sgcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.X.supp >> default.supp make all-recursive make[1
可能的重复: 创建makefile 你好,我正在尝试为我的库创建零件和配置,其目录结构如下: : $projectroot ├── part1 │ ├── src │ └── lib ├── part2 │ ├── src │ └── lib └── part3 ├── src └── lib 您可以看到,该项目有3个不同的部分,有人想安装整个项目,或者有人可能只需要一个项目. 我有一个像以下内容: SUBDIRS = part1/lib part1/src part2/lib part2/src part3/lib part3/src part1: cd part1/lib; make cd part1/src; make part2: cd part2/lib; make cd part2/src; make
每次从源中编译某些内容时,您都会经历相同的3个步骤: $ ./configure $ make $ make install 我知道,将安装过程分为不同的步骤是有意义的,但是我不明白,为什么这个星球上的每个编码器都必须一次又一次地编写相同的三个命令才能获得一个单一的命令任务完成.从我的角度来看 #!/bin/sh ./configure make make install 人们为什么要分别进行3个步骤? 解决方案 因为每个步骤都会做不同的事情 准备(设置)建筑环境 ./configure 此脚本有很多您应该更改的选项.像--prefix或--with-dir=/foo.这意味着每个系统都有不同的配置.另外./configure检查应该安装的缺少库.这里的任何错误导致不构建您的应用程序.这就是为什么发行版在不同地方安装的软件包的原因,因为每个发行版都认为最好将某些库和文件安装到某些目录中.据说它运行./configure,但实际上您应该始终更改它.
当我在Ubuntu OS(16)中使用配置时,似乎没有问题.我已经安装了AutoConf工具和依赖项. 当我在Ubuntu(或最新)中运行相同的配置文件时,问题是我没有安装任何自动工具.我收到以下错误消息. ./configure: line 7022: /usr/bin/file: No such file or directory 这对构建过程无害.我只想了解发生了什么.配置文件: 7022 case `/usr/bin/file conftest.o` in 7023 *32-bit*) 看来我的Docker没有/usr/bin/file. Ubuntu软件包包含文件实用程序.找到有关"/usr/bin/file"的任何有用信息的问题在于,该文件是一个常见的术语,很难找到更多信息.在使用文件实用程序的系统上,我可以从文件页面上获取以下信息: AVAILABILITY You can obtain the original
我正在从ubuntu上的来源建造perl 14.04(内核3.13.0-24代): wget http://www.cpan.org/src/5.0/perl-5.22.2.tar.gz tar -xzf perl-5.22.2.tar.gz cd perl-5.22.2 ./Configure -des -Dprefix=$HOME/perl5.22 配置没有生成makefile.输出日志是: First let's make sure your kit is complete. Checking... Locating common programs... Checking compatibility between /bin/echo and builtin echo (if any)... Symbolic links are supported. Checking how to test for symbolic links... You can test
我最近下载了GNU八度的最新稳定版本,并试图在我的机器上构建和安装它(Ubuntu 10.0.4 lts 64bit). 当我运行./configure时,我收到了此错误消息: configure: error: You are required to have BLAS and LAPACK libraries 有人知道我从哪里获得这些图书馆? 解决方案 尝试运行此 apt-get install libblas-dev libatlas-dev liblapack-dev 所有图书馆,在这里列出了Ubuntu中八片包装所要求的所有图书馆: http://ppackages.ubuntu . 以相当最大的方式配置的Ubuntu中的八度 - 八度的许多可选部分已打开,这导致了所需的库列表. 要获得八度所需的大多数开发(-dev)软件包,您可以运行: apt-get install octave3.2-headers 安装-dev -li
尝试安装R-3.3.2,但是当我使用$./configure时,我会继续遇到错误: checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required 解决方案 它对我有用: sudo apt-get install libbz2-dev 其他解决方案 我已经成功地从源中编译了R,以下步骤需要特别注意: 安装依赖库: Zlib-1.2.8,BZIP2-1.0.6,XZ-5.2.2,PCRE-8.39,Curl-7.52.1. 具体来说,要编译BZIP2,应修改Makefile: 原始:CC = GCC 修改后:cc = gcc -fpic 将库和标头文件传递给使用适当变量的配置: export cpath =/opt/zlib-1.2.8/incly/:/opt/opt/bzip2-1.0.6/includ ind
我试图更改ttk.Entr小部件中的单词的颜色时下图:(顺便说一句,我是Python 2.7) from Tkinter import * from ttk import * root=Tk() style=Style() style.configure("TEntry",disabledforeground='red') entry_var=StringVar() entry=Entry(root,textvariable=entry_var,state='disabled') entry.pack() entry_var.set('test') mainloop() 但结果没有显示"测试"的颜色,任何想法是怎么了的? 解决方案 尝试使用from Tkinter import * from ttk import * root=Tk() style=Style() style.map("TEntry", foreground=[("active", "blac
我通常构建我的库./configure && make && sudo make install.但是,Travis Docs使用sudo 所以我将构建命令更改为./configure --prefix=$HOME && make && make install.但是,在下一步(构建Python扩展程序)中,我有一个错误 /usr/bin/ld:找不到-lprimesieve 有什么想法吗?我需要在某些环境变量中添加$HOME/lib,因为我更改了前缀? 我的travis config 使用错误构建日志 https://travis-ci.orgg/Hickford/Primesieve-Python/Jobs/69536543#L382 解决方案 尝试设置LD_LIBRARY_PATH,就像PATH对库.例如: LD_LIBRARY_PATH= $HOME/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH 有关
我正在尝试在Redhat 5: 上安装TCL/TK作为常规用户 TCL_VERSION=8.6.1 BASE_PATH=/myownpath tar -xzf tcl${TCL_VERSION}-src.tar.gz cd tcl${TCL_VERSION}/unix ./configure \ --prefix=${BASE_PATH} \ --without-tzdata \ --enable-64bit make -j9 sed -e "s@^\(TCL_SRC_DIR='\).*@\1${BASE_PATH}'@" \ -e "/TCL_B/s@='\(-L\)\?.*unix@='\1${BASE_PATH}/lib@" \ -i tclConfig.sh make install make install-private-headers chmod -v 755 ${BASE_PATH}/lib/libtcl*.so 到目前为
我想允许用户配置应用程序的外观(背景颜色,字体,字体大小和颜色,按钮颜色等).我将所有默认设置保存到配置文件中,该程序将其解释并保存到类中的变量中,以便于在功能之间访问.现在,我可以将用户所做的更改保存到配置文件中,当用户关闭并重新打开应用程序时,这些更改将被反映,但是我希望更改是瞬时的,因此我尝试了这样的事情: import tkinter as tk class SetColor: def __init__(self, color): self.color = 'green' current = SetColor('green') root = tk.Tk() lbl_color = tk.Label(root, text='Choose button color') lbl_color.grid(row=0, column=0, pady=5, padx=2) btn_red = tk.Button(root, text='Red', bg=c
我正在编写一个需要循环的TKINTER程序.我无法从TKINTER所在的同一类中运行循环,我可以肯定这么多.要运行所说的循环,我相信我必须使用一个单独的线程,因此是一个单独的类,以防止TKINTER冻结.当线程打印数字中的循环时,我已经可以运行tkinter.但是,我需要让它配置一个位于另一类的TKINTER窗口.我该怎么做? 解决方案 您不一定需要其他线程,因为您不一定需要创建一个循环(请参阅我对您对使用嵌套环的另一个问题的回答). 但是,要回答您的特定问题,您必须实现队列.工人线程将在队列上放置某种消息,主线程通过事件循环对队列进行轮询并响应消息.这是必要的,因为一个工作线程无法直接修改TK小部件. 有关使用TKINTER使用线程和队列的示例,请参见