从源代码构建 Audacity 时配置失败并打印此错误:
configure: error: Could not find wx-config: is wxWidgets installed?
is wx-config in your path?
我已阅读自述文件中的构建说明,然后下载了所有需要的依赖项。发行版是 16.04。
更新
我已经确定了问题的根源。我试图使用不存在的 Xenial 存储库来存放 wxWidgets。Utopic 是存储库页面上列出的最新发行版,因此我将其添加deb http://repos.codelite.org/wx3.0.2/ubuntu/ utopic universe
到/etc/apt/sources.list
。
./configure 成功。make 失败,并生成以下错误:
命令/CommandManager.cpp:115:21:致命错误:gtk/gtk.h:没有这样的文件或目录编译终止。
Makefile:3695:目标‘commands/audacity-CommandManager.o’的配方失败
make[2]:*** [commands/audacity-CommandManager.o] 错误 1 make[2]:离开目录‘/home/obalaban/Downloads/audacity-minsrc-2.1.2/src’
Makefile:1346:目标“全部”的配方失败
make[1]:*** [all] 错误 2 make[1]:离开目录“/home/obalaban/Downloads/audacity-minsrc-2.1.2/src” Makefile:716:目标“all-recursive”的配方失败
make:*** [全递归] 错误 1
更新
按照 andrew.46 的建议后,我的构建再次失败。
BlockFile.cpp: 在函数“void ComputeMinMax256(float*, float*, float*, int*)”中:
/usr/include/wx-3.0/wx/math.h:91:31: 错误:未在此范围内声明“isnan”
#define wxIsNaN(x) isnan(x)
^ BlockFile.cpp:339:11: 注意:在宏“wxIsNaN”的扩展中if (wxIsNaN(summary256[3*i+2])) ^
/usr/include/wx-3.0/wx/math.h:91:31:注意:建议的替代方案:
#define wxIsNaN(x) isnan(x) ^
BlockFile.cpp:339:11:注意:在宏“wxIsNaN”的扩展中
if (wxIsNaN(summary256[3*i+2])) ^
在从 /usr/include/wx-3.0/wx/math.h:58:0、从 /usr/include/wx-3.0/wx/gdicmn.h:23、
从 /usr/include/wx-3.0/wx/utils.h:26、
从 BlockFile.cpp:51:
/usr/include/c++/5/cmath:641:5: 包含的文件中:注意:'std::isnan'isnan(_Tp __x) ^
Makefile:2440: 目标‘audacity-BlockFile.o’的配方失败
make[2]:* [audacity-BlockFile.o] 错误 1
make[2]: 离开目录 '/home/obalaban/audacity-build/audacity/src'
Makefile:1362: 目标 'all' 的配方失败
make[1]: *[all] 错误 2
make[1]: 离开目录 '/home/obalaban/audacity-build/audacity/src'
Makefile:781: 目标 'all-recursive' 的配方失败
make: *** [all-recursive] 错误 1
答案1
到编译Xenial Xerus 下的 Audacity(请记住还有一个合理的 Xenial Repository 版本 2.1.2 可用)使用以下内容:
使用构建依赖项:
按照以下步骤激活“源”存储库:
Dash > Software & Updates > Ubuntu Software > Source Code
单击“源代码”框并允许重新加载存储库。然后安装构建依赖项和一些附加项:
sudo apt-get build-dep audacity
sudo apt-get install checkinstall
下载 Audacity 源代码并构建:
使用以下单一命令使整个过程自动化:
mkdir -v $HOME/Desktop/audacity_build && cd $HOME/Desktop/audacity_build && \
wget https://github.com/audacity/audacity/archive/Audacity-2.1.2.tar.gz && \
tar xvf Audacity-2.1.2.tar.gz && cd audacity-Audacity-2.1.2 && \
./configure --without-ffmpeg && make -j 4 && \
sudo checkinstall --pakdir "$HOME/Desktop/audacity_build" \
--backup=no --deldoc=yes --pkgname audacity --pkgversion 2.1.2 \
--fstrans=no --deldesc=yes --delspec=yes --default
如果你有兴趣多活一点,你可以尝试一下git 存储库对上面的代码做一些小的修改...
保留您的版本:
固定你的包并不是一个坏主意,因为你无疑会尝试你的构建:
echo "audacity hold" | sudo dpkg --set-selections
然后较新的存储库版本将不会胜过您自己的版本......
笔记:
- FFmpeg 编译失败,因此将其从进程中删除(
./configure --without-ffmpeg
)。这将限制 Audacity 的一些导出和导入功能,但您可能不会使用此功能?无论如何,值得彻底查明此失败的原因... - 记住,在 Xenial Xerus 下,简单
sudo apt-get install audacity
就能得到 Audacity 2.1.2 的不错版本...
答案2
检查 wxWidgets 的开发包是否已安装,这些文件包含编译 wxWidgets 所需的头文件。如果你有 Synaptic,你可以输入:
libwxgtk
查找以以下结尾的包-dev
在这种情况下,您可以安装libwxgtk3.0-dev
包含wx-config
脚本的程序。
答案3
您是否已完成 wxWidgets 的安装?这可能是问题所在。我也遇到过这个问题,因为文档没有指定 wxWidgets 的完整安装。为了完成安装,我导航到 wxWidgets 中的 docs 文件夹,然后导航到 gtk 文件夹。根据那里的说明,要完成 wxWidgets 的安装,步骤如下:
> mkdir buildgtk
> cd buildgtk
> ../configure --with-gtk
> make
> su <type root password>
> make install
> ldconfig
[if you get "ldconfig: command not found", try using "/sbin/ldconfig"]
之后,您必须构建 Audacity。步骤如下:
>create a 'build' subdirectory in Audacity folder and change to it.
>../configure --with-lib-preference="local system"
>make
>make install # as root