JDim Part10【ワッチョイ有】 (938レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

232: 2024/09/29(日)02:45 ID:Y2cHDc9j(1/8) AAS
[バージョン] JDim 0.13.0-alpha20240928(git:128642f6e4:M)
[ディストリ ] Debian GNU/Linux 12 (bookworm) (x86_64)
[パッケージ] ソース( github.com/JDimproved/JDim )
[ DE/WM ] XFCE (X11)
[ gtkmm  ] 3.24.7
[ glibmm  ] 2.66.5
[ TLS lib ] GnuTLS 3.7.9
[オプション ] '--with-alsa''--with-native'
[ そ の 他 ] メニューキー小改造
1. しおりを設定/解除 の左クリックメニューキーを(_B)→(_D)に変更
src/article/articleviewbase.cpp:176 行目
2. [履歴(S)]-[スレ履歴(T)] を [スレ履歴(A)] にする
src/history/historymanager.cpp:86 行目
233
(1): 2024/09/29(日)02:51 ID:Y2cHDc9j(2/8) AAS
20240928版をビルドしましたが、mesonのオプションに-Dunity=onを指定すると
コンパイルエラーが出てビルド失敗するかも知れません
俺環ではエラーでした

いままでコンパイルのソース(?)の個数が329個ほど→127個ほどに
格段に減っていたので、よく分からないものの
meson setup builddir -Dunity=on ; ninja -C builddir
をしていました
でもこれだと
./src/control/controlid.h の 319行目の None で
expected identifier before numeric constant
というコンパイルエラーが出てビルド失敗しました
以前までのバージョンまでは-Dunity=onがあってもビルドは成功していました

-Dunity=on オプションが無ければ問題なくビルド成功しました
329個のコンパイルでとても時間がかかりますが

ちなみに -Dunity=on オプションありでも、controlid.h の None を NoneNone にして
使っている.cpp(かなりの量)の方も NoneNone にしたらビルドが成功して、
スレの読み書きなど普通に使用出来ました

再現出来なければこちらの勘違いかも知れないし、-Dunity=on オプションを
指定すること自体が変だというならすみません
235
(2): 2024/09/29(日)04:55 ID:Y2cHDc9j(3/8) AAS
追加

jdimディレクトリを/tmp/testに置いてビルドすると
src/jdim.p/jdim-unity3.cppのコンパイル時に
以下のメッセージが出ました

In file included from /usr/include/X11/Xlib.h:44,
from /usr/include/gtk-3.0/gdk/gdkx.h:30,
from /tmp/test/jdim/builddir/../src/environment.cpp:19,
from src/jdim.p/jdim-unity3.cpp:2:
/tmp/test/jdim/builddir/../src/control/controlid.h:319:9: error: expected identifier before numeric constant
319 | None,
| ^~~~
236
(1): 2024/09/29(日)04:56 ID:Y2cHDc9j(4/8) AAS
ああ、>>235は-Dunity=on オプション指定でコンパイルエラーが出る時のメッセージです
237
(1): 2024/09/29(日)05:11 ID:Y2cHDc9j(5/8) AAS
今回追加された src/environment.cpp 19行目の
> #include <gdk/gdkx.h>
の記述によって、
/usr/include/X11/X.h 115行目の
> #define None 0L /* universal null resource or null atom */
でNoneが定義されているのに src/control/controlid.hの319行目でNoneが
再定義されることになってしまってコンパイルエラーが出たのかな
であれば、controlid.hのNoneを別の名前にすれば良いのだろうか

想像です
間違ってたらすみません
238
(1): 2024/09/29(日)05:13 ID:Y2cHDc9j(6/8) AAS
そもそもX11環境で-Dunity=on オプションを指定していたのが間違いだったのかな
241: 2024/09/29(日)16:04 ID:Y2cHDc9j(7/8) AAS
CONTRIBUTING.mdに
> ##### Unity buildの使い方
> setupサブコマンドで`-Dunity=on`を指定します。

とあったので指定していたんだけど、今回のコンパイルエラーは
JDimの方のせいじゃなくてUnity Buildのデメリットが表面化したということかな

Unity Build
en.wikipedia.org/wiki/Unity_build
(訳)
> ユニティ ビルド(統合ビルドまたはジャンボ ビルドとも呼ばれる) は、
> CおよびC++ ソフトウェア開発で複数の翻訳単位を1 つに結合することによって
> プロジェクトのコンパイル速度を上げる方法

> ユニティ ビルドの欠点(…中略…)内部リンクに依存する有効な C++ 構造の一部は、
> Unity ビルドでは失敗する可能性があります。たとえば、静的シンボルと、
> 異なるファイル内の同じ識別子を持つ匿名名前空間で定義されたシンボルの衝突などです。
242: 2024/09/29(日)17:16 ID:Y2cHDc9j(8/8) AAS
ああっ
CONTRIBUTING.mdの
> ##### Unity buildの使い方
以下しか読んでいなかったけど、その上の方に

> #### :chains: Unity buildの注意
> 機能を有効に設定してソースファイルを結合するとマクロや変数などの名前が衝突してコンパイルに失敗することがあります。
> ビルドの問題を見つけたときはバグ報告や修正のPull requestをいただけると幸いです。

と書いてあった
なんということだ俺…
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 1.521s*