オープンソース 近年では、コンパイレーションまで面倒を見てくれる、オープンソースがあるかどうかと言う話になります。 また、ソフトウェアのベースを知る人は、APIの解説ぐらいで、作成するという話でもありますので、有効かどうかという内容になります。
表1.ソフトウェアインフォメーション:
1:ソフトウェア
Audacity® is a free, open source (cross-platform) digital audio editor, recorder, and mixer. It is a sophisticated software application that comes with an extensive list of features.
2:ダウンロード先:https://www.fosshub.com/Audacity.html
Linux Source: -> audacity-minsrc-2.4.2.tar.xz
3:コンパイレーション
unzip *.tar.xz
: https://linuxize.com/post/how-to-extract-unzip-tar-xz-file/
: https://www.howtogeek.com/409742/how-to-extract-files-from-a-.tar.gz-or-.tar.bz2-file-on-linux/
*.tar.xzですが、
tar xvf *.tar.xzで解凍できます。
zオプションは使えませんでした。
コンプレスの値が大分向上しているようです。
tgzよりいいぐらいです。
wxWidgetsの他に、C言語のgtk+もあるようです。
https://lefestyle101.blogspot.com/2020/08/instructions-for-building-on-linux.html
4:利用例
5:ソースコード概要
6:ソースコードのアナライザ
7:カスタマイズ:(例:画面を1つ足す。)
8:カスタマイズ:ダウンロード
9: コンパイレーションについて: 雑記
---
ソースファイルですから、コマンドオプションを直接叩いて、コンパイルできるはずです。
gcc: error trying to exec 'cc1plus': execvp: そのようなファイルやディレクトリはありません
---
つまり、本来は、gccという実行ファイルが、cc1plusというファイルを外部コールで実行することになっていますが、Linuxのコマンド類の整合性がとれていないために、この様になっています。今日のパッケージ管理では珍しい現象です。
How to use execvp() : https://stackoverflow.com/questions/27541910/how-to-use-execvp
---
(※真面目に解決します。)
apt-getを用いるように、勧められていますが、yumで設定してみます。
と言っても、wxWidgetにおいては、gccの開発環境が正しくインストールされるぐらいで、大丈夫と思います。
yum install gcc-c++.i686で、C++のコンパイラはインストールされ、C++のコンパイレーション自体は行われます。
"yum search gcc"ぐらいで、適当にサーチすれば、探せます。
---
wxは中身を見れば、ウィンドウツールキットです。
:https://lefestyle101.blogspot.com/2020/08/instructions-for-building-on-linux.html
OnOkというファンクションがよくあります。
最悪、このルーチンにプリントのルーチンをいれて、動作確認できます。
printf("Push OK: AboutDialog.\n");
---
AboutDialog.h: void OnOK(wxCommandEvent & event);
BatchProcessDialog.h: void OnOK(wxCommandEvent &event);
LabelDialog.h: void OnOK(wxCommandEvent &event);
SoundActivatedRecord.h: void OnOK(wxCommandEvent& event);
SplashDialog.h: void OnOK(wxCommandEvent & event);
TimerRecordDialog.h: void OnOK(wxCommandEvent& event);
---
void AboutDialog::OnOK(wxCommandEvent & WXUNUSED(event))
{
#ifdef __WXMAC__
Destroy();
#else
EndModal(wxID_OK);
#endif
}
---
cmkeが生成したファイルが、アーカイブに既にあります。
buildというフォルダを背作っる必要があると思われます。
---
cmake_minimum_required( VERSION 3.15 )
# Don't allow in-source builds...no real reason, just
# keeping those source trees nice and tidy. :-)
# (This can be removed if it becomes an issue.)
if( "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}" )
message( FATAL_ERROR
"In-source builds not allowed.\n"
"Create a new directory and run cmake from there, i.e.:\n"
" mkdir build\n"
" cd build\n"
" cmake ..\n"
"You will need to delete CMakeCache.txt and CMakeFiles from this directory to clean up."
)
endif()
---
cmake説明です。
manにクロスプラットフォームのMakefileGeneratorと記載されています。
---
cmake(1) cmake(1)
NAME
cmake - Cross-Platform Makefile Generator.
USAGE
cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
DESCRIPTION
The "cmake" executable is the CMake command-line interface. It may be
used to configure projects in scripts. Project configuration settings
may be specified on the command line with the -D option. The -i option
will cause cmake to interactively prompt for such settings.
CMake is a cross-platform build system generator. Projects specify
their build process with platform-independent CMake listfiles included
in each directory of a source tree with the name CMakeLists.txt. Users
build a project by using CMake to generate a build system for a native
tool on their platform.
---
自身のプロジェクトでcmakeしました。
GNUのプロジェクトに反応するようになっているようですが、おそらくソースフォルダの登録が必要と思われます。
mkdir build
cmake ..
CMake Error: The source directory "./src/read_006/src" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
---
10: C++の再設定:
---
yum search cc1plus:
---
# yum search cc1plus
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* centosplus: mirrors.cat.net
* contrib: mirrors.cat.net
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: mirrors.cat.net
* remi-safe: mirror.sjc02.svwh.net
* updates: mirrors.cat.net
警告: 一致するものが見つかりません: cc1plus
見つかりませんでした
---
# yum install gcc-c++.i686
# yum update
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
更新処理の設定をしています
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* centosplus: mirrors.cat.net
* contrib: mirrors.cat.net
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: mirrors.cat.net
* remi-safe: mirror.sjc02.svwh.net
* updates: mirrors.cat.net
更新と設定されたパッケージがありません。
---
gcc -c ZoomInfo.cpp
ZoomInfo.cpp:11 から include されたファイル中:
Audacity.h:32:6: error: #error Audacity requires at least GCC 4.9
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../../include/c++/4.4.7/mutex:36 から include されたファイル中,
ClientDataHelpers.h:15 から,
ClientData.h:14 から,
ZoomInfo.h:14 から,
ZoomInfo.cpp:12 から:
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../../include/c++/4.4.7/c++0x_warning.h:31:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.
AudacityException.h:19 から include されたファイル中,
InconsistencyException.h:16 から,
---
cmakeそのものについては、cmake3にて、スクリプトが動作をしたことを確認した。
コメント
コメントを投稿