从源代码构建 Audacity 时找不到 wx-config 错误

从源代码构建 Audacity 时找不到 wx-config 错误

从源代码构建 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

相关内容