FBX SDK の lib ファイル指定
先日,時間があまりとれず 今までの lib の指定 でそのままだった.
FbxSdk.h から順にたどっていくと fbxsdk_version.h があった.
この中に次の様な SDK バージョンが定義されている.
#define FBXSDK_VERSION_MAJOR 2014 #define FBXSDK_VERSION_MINOR 1 #define FBXSDK_VERSION_POINT 0
バージョン文字列は次の様に利用できる.
CString fsv_str = FS_Ver_Str ; #ifdef FBXSDK_VERSION_STRING // fsv_str = ::To_tstring(FBXSDK_VERSION_STRING).c_str() ; fsv_str = _T(FBXSDK_VERSION_STRING) ; #endif
これらを利用した方法で書き換え.
#if (FBXSDK_VERSION_MAJOR >= 2014) #define FS_VER_GT_2014_00 #endif #if (FBXSDK_VERSION_MAJOR >= 2019) #if (FBXSDK_VERSION_MINOR >= 1) #define FS_VER_GT_2019_01 #endif #endif #ifdef FS_VER_GT_2019_01 #ifdef _DLL #pragma comment (lib, "LibXml2-MD.lib") #pragma comment (lib, "Zlib-MD.lib") #else #pragma comment (lib, "LibXml2-MT.lib") #pragma comment (lib, "Zlib-MT.lib") #endif #endif #ifdef FS_VER_GT_2014_00 #ifdef _DLL #pragma comment (lib, "LibFbxSDK-MD.lib") #else #pragma comment (lib, "LibFbxSDK-MT.lib") #endif #endif
https://dev.mish.work/wordpress/2020/12/15/fbx-sdk-hxx-pragma-comment/
コンパイルオプション -Dname=…
コンパイル時のオプションで -DVER=2019.09 の様な指定を使いたくなったので調べてみた.
コードは次のようなもの.
#include <iostream> #include <iomanip> #ifndef Test_Ver_F #define Test_Ver_F 2019.0902 #endif int main (int argc, char* argv[]) { { std::cout << Test_Ver_F << std::endl ; std::cout << std::setprecision(20) << Test_Ver_F << std::endl ; } return 0 ; }
pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ g++ t_ccsw_d.cpp pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ ./a.out 2019.09 2019.0902000000000953 pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ g++ t_ccsw_d.cpp -DTest_Ver_F=2019.0902 pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ ./a.out 2019.09 2019.0902000000000953 pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ g++ t_ccsw_d.cpp -DTest_Ver_F="2019.0902" pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ ./a.out 2019.09 2019.0902000000000953 pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ g++ t_ccsw_d.cpp -DTest_Ver_F=\"2019.0902\" pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ ./a.out 2019.0902 2019.0902 pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ g++ t_ccsw_d.cpp -DTest_Ver_F=\"2019.09.02\" pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $ ./a.out 2019.09.02 2019.09.02 pi@raspberrypi:~/Documents/test_gcc/t_ccsw_d $
2019.0902 の様な浮動小数点の指定は特に変わった所はない.
但し浮動小数点による誤差などは考慮が必要.
文字列として扱いたいときは \” で括ればよい.
Raspberry Pi が起動しなくなった?
2020/09 追記
Raspberry Pi 4 Model B の場合,もう一つの HDMI ポートにつなげてみてください.
Raspberry Pi 4(ラズパイ)起動!虹画面フリーズの原因は意外なものだった…
以下は Raspberry Pi 3 Model B で SD が壊れた時の対応です.
「ジブン専用パソコンキット2」が起動しなくなってしまった.
Raspberry Pi の電源を入れて,赤いランプは点くが,緑のランプが点かない.
そうなった原因はわかっている.
「sudo apt upgrade 」として途中で止まってしまった?
進まない様に思った(緑のランプが点滅していない)ので,別のターミナルから再起動「sudo shutdown -r now 」.
終了はしたが,起動しなくなってしまった.
「micro SD」と「メモリリーダライタ」を購入.
今思うと「メモリリーダライタ」は USB 3 の方が良かった.
「micro SD」は最初付属していたものより速いのでこれで十分かなと思う.
「ジブン専用パソコン2」のバックアップデータを落として,SD にコピー.
ちゃんと起動するようになった.
「無線 LAN」を設定して「SSH」と「VNC」を有効に.
「sudo apt upgrade 」とすると,容量が足りないでエラーに.
SD 容量をすべて使用するために「sudo raspi-config 」.
「7 Advanced Options 」,「A1 Expand Filesystem 」を実行.
「終了」して「再起動」すると,また起動しなくなってしまった.
「KoKaRasPi1181118.img」をコピーするところからやり直し.
今度は先に「sudo raspi-config 」で SD すべてを使用する様に.
続いて「sudo apt upgrade 」.
何とかうまくいった.
8 GB の SD ではもううまくないのかもしれない.
pi@raspberrypi:~ $ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 15G 5.9G 7.9G 43% / devtmpfs 459M 0 459M 0% /dev tmpfs 464M 0 464M 0% /dev/shm tmpfs 464M 13M 451M 3% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 464M 0 464M 0% /sys/fs/cgroup /dev/mmcblk0p1 44M 23M 21M 52% /boot tmpfs 93M 0 93M 0% /run/user/1000 pi@raspberrypi:~ $
FBX SDK 2019.5
サイトの統計情報を見ていたら,検索キーワードに ” FBX SDK 2019.5 ” があった.
先日調べた時はわからなかったが,2019.5 になったみたい.
https://www.autodesk.com/products/fbx/
「C/C++」-「全般」-「追加のインクルードディレクトリ」を 2019.5 に. C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\include;%(AdditionalIncludeDirectories) C:\Program Files\Autodesk\FBX\FBX SDK\2019.5\include;%(AdditionalIncludeDirectories) 「リンカー」-「全般」-「追加のライブラリディレクトリ」を 2019.5 に. C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\lib\vs2017\x86\Release;%(AdditionalLibraryDirectories) C:\Program Files\Autodesk\FBX\FBX SDK\2019.5\lib\vs2017\x86\Release;%(AdditionalLibraryDirectories)
変更する前には,前の設定を残すため「構成マネージャー」でコピーしている.
FBX SDK 2019.0 以前からの更新の場合は libxml2-m?.lib と zlib-m?.lib が増えているのでその変更も必要.
FBX SDK 2019.2 で LNK2019
error C1189: #error: Please use /MD
プロジェクトの設定で「スタティック ライブラリで MFC を使用する」から「共有 DLL で MFC を使う」に変更すると,次のエラーになることがある.
—— ビルド開始: プロジェクト: MkCmf, 構成: Release Win32 ——
StdAfx.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.22.27905\atlmfc\include\afxver_.h(77,1): error C1189: #error: Please use the /MD switch for _AFXDLL builds
プロジェクト “MkCmf142.vcxproj” のビルドが終了しました — 失敗。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
対応方法はエラーメッセージにある様に
「マルチスレッド(/MT)」から「マルチスレッド DLL(/MD)」に変更する.
同様に「共有 DLL で MFC を使う」から「スタティック ライブラリで MFC を使用する」に変更した場合.
—— ビルド開始: プロジェクト: AsHVR, 構成: Release Win32 ——
StdAfx.cpp
c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\atlmfc\include\afx.h(24): fatal error C1189: #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
プロジェクト “AsHVR142.vcxproj” のビルドが終了しました — 失敗。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
この場合は「マルチスレッド(/MT)」に変更する.
2021/04/01
それぞれの設定に対応するには「<親またはプロジェクトの既定値から継承>」とすれば良さそう.
次のエラーの場合はこちら.
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
Win10 で 3mf の読込み – 2
先日うまく開けなかった 3mf .
~.model ファイル内の texture の contenttype の指定が間違っていた.
正しくは <texture id=”1″ path=”/duckCM_fix.jpg” contenttype=”image/jpeg” />
コードの修正はまだ.model ファイルをエディタで修正して保存.
duck_jpeg.3mf
Linux から Windows 環境への接続
先日は「ファイルマネージャ」での Windows 環境へのアクセスだったが,今度はマウント.
検索すると以下の所に詳しく書かれていた.
LinuxからWindowsの共有フォルダをマウントするには
実際に操作したのは,
$ sudo mkdir /mnt/_.src
$ sudo mount -t cifs -o username=pi,password=raspberry //Z170S0/Public/…/Develop/_.SRC /mnt/_.src
Fedora ではこれでうまくいったが,Ubuntu ではエラー.
Fedora 環境は先日いろいろ弄って Samba の関係を入れたが Ubuntu はまだだった.
$ sudo apt install samba
$ sudo apt install cifs-utils
* samba のインストールは不要?
Z170S0 ではエラーとなり IP アドレスで指定したらうまくいった.
$ sudo mount -t cifs -o username=pi,password=raspberry //192.168.1.169/Public/…/Develop/_.SRC /mnt/_.src
Linux から Windows 環境のファイル
先日 Linux 環境から NAS 環境のファイルアクセスの手順などはある程度分かった.
今度は Windows 環境のファイルへのアクセス.
「他の場所」を選んだ時「Z170S0」が表示されていた(表示されないこともあり).
表示されていない時は「サーバへの接続」欄に smb://z170s0/ で可能.
選択するとパスワードを求められるが,これがうまく入らなかった(何を指定すれば良いかがわからなかった).
Raspberry Pi 上からも同じ様な感じで見えていたので試すと「pi」で入れた.
Ubuntu や Fedora でも「pi」で入れることがわかった.
「pi」で入ることで「Everyone」として扱われているものと思われる.
Linux から NAS へのアクセス
GLUT インストール
ちょっと時間が空いたので,Linux 環境で GLUT を使える様にしてみた.
以前からお世話になっている次の所に詳しく書かれている.
GLUTによる「手抜き」OpenGL入門
Ubuntu , Debian ,Raspberry Pi では
$ sudo apt install freeglut3 freeglut3-dev
Fedora では
$ sudo yum install freeglut
$ sudo yum install freeglut-devel
コンパイルは
$ cc hello_gl.c -lglut -lGLU -lGL
https://jml.mish.work/index.php/cpp/install-glut.html
opengl.jp
The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3 日本語翻訳版
2021/05 Win10 に GLUT インストール
Let’s Encrypt certificate expiration …
また次のメールが届いた.
Let’s Encrypt certificate expiration notice for domain “itl.mydns.jp” (and 4 more)
Hello,
Your certificate (or certificates) for the names listed below will expire in 20 days (on 30 Aug 19 02:53 +0000). Please make sure to renew your certificate before then, or visitors to your website will encounter errors.
We recommend renewing certificates automatically when they have a third of their total lifetime left. For Let’s Encrypt’s current 90-day certificates, that means renewing 30 days before expiration. See https://letsencrypt.org/docs/integration-guide/ for details.
itl.mydns.jp
…
mish.myds.me
For any questions or support, please visit https://community.letsencrypt.org/. Unfortunately, we can’t provide support by email.
For details about when we send these emails, please visit https://letsencrypt.org/docs/expiration-emails/. In particular, note that this reminder email is still sent if you’ve obtained a slightly different certificate by adding or removing names. If you’ve replaced this certificate with a newer one that covers more or fewer names than the list above, you may be able to ignore this message.
If you are receiving this email in error, unsubscribe at http://mandrillapp.com/track/unsub.php?u=30850198&id=fab156addb7b4097869d6fbc1603e9d3.RsjpgIgXcXbPKK4%2Fg4vK9vppkUw%3D&r=https%3A%2F%2Fmandrillapp.com%2Funsub%3Fmd_email%3Diwao.n%2540ae.auone-net.jp
Regards,
The Let’s Encrypt Team
Synology NAS の DSM で更新してくれるはずなのにうまく動作しなかったのか?
DSM の「コントロールパネル」-「セキュリティ」-「証明書」から対象のものを選んで「右クリック」-「証明書を更新」.
2021/07 NAS の証明書の更新
vcomp.dll が見つからないため、…
市販のアプリケーションやシェアウェアなどの利用の方は次のリンク先を参照してください.
https://mish.myds.me/wordpress/i-tools/2017/05/17/mfc140u-dll-error/
以下は開発者向けの情報です.
VC6 で作成したコンソール AP を VC7 以降に変換.
VC8 以降では OpenMP が使用できるので,コンパイルの設定を変更.
VC10 以降では問題ないが,VC8 ,VC9 でビルドしたものを実行すると,
—————————
gons_to.exe – システム エラー
—————————
vcomp.dll が見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。
—————————
OK
—————————
—————————
gons_to.exe – システム エラー
—————————
VCOMP90.DLL が見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。
—————————
OK
—————————
しばらくわからなかったが,以前にも書いていた.
https://mish.myds.me/wordpress/dev/2013/03/14/vcompd-dll-debug-error/
main() 関数がある cpp に以下を追加.
#ifdef _OPENMP
#include <omp.h>
#endif
NAS でのコンパイルエラー
Iwao@DS116:~/gcc_test/Test/gons_to$ g++ gons_to.cpp In file included from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/gonsa_to.hxx:24:0, from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/Test/gons_to.hpp:11, from gons_to.cpp:13: /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/ga_dae.hxx: In function 'Xml_E GonsA_ToDAE(const GonsA&, c_v_tstring&)': /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/ga_dae.hxx:180:95: error: invalid initialization of non-const reference of type 'Vd3& {aka Vector3<double>&}' from an rvalue of type 'Vd3 {aka Vector3<double>}' Xml_E nodeR = dae_out::node_lookat(ID_visual_scene_n_c_R,ID_camera_R_STD,stdR.GetEyePoint(),target) ; ~~~~~~~~~~~~~~~~^~ In file included from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/ga_dae.hxx:12:0, from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/gonsa_to.hxx:24, from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/Test/gons_to.hpp:11, from gons_to.cpp:13: /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/fe_dae.hxx:596:15: note: initializing argument 3 of 'static Xml_E dae_out::node_lookat(LPCTSTR, LPCTSTR, Vd3&, Vd3&)' static Xml_E node_lookat ( ^~~~~~~~~~~ In file included from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/gonsa_to.hxx:24:0, from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/Test/gons_to.hpp:11, from gons_to.cpp:13: /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/ga_dae.hxx:181:95: error: invalid initialization of non-const reference of type 'Vd3& {aka Vector3<double>&}' from an rvalue of type 'Vd3 {aka Vector3<double>}' Xml_E nodeL = dae_out::node_lookat(ID_visual_scene_n_c_L,ID_camera_L_STD,stdL.GetEyePoint(),target) ; ~~~~~~~~~~~~~~~~^~ In file included from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/ga_dae.hxx:12:0, from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/gonsa_to.hxx:24, from /volume1/public/C_Sync/GoogleD/Develop/_.SRC/Test/gons_to.hpp:11, from gons_to.cpp:13: /volume1/public/C_Sync/GoogleD/Develop/_.SRC/__Iwao/fe_dae.hxx:596:15: note: initializing argument 3 of 'static Xml_E dae_out::node_lookat(LPCTSTR, LPCTSTR, Vd3&, Vd3&)' static Xml_E node_lookat ( ^~~~~~~~~~~ Iwao@DS116:~/gcc_test/Test/gons_to$ g++ gons_to.cpp Iwao@DS116:~/gcc_test/Test/gons_to$ ./a.out
node_lookat の 3 つ目の Vd3& を const とすることで対応.
“invalid initialization of non-const reference of type” で検索するとわかりやすく書いてあった.
xml の読込み – 3
2019/01 に書いた xml の読込み で,属性が次の様になっている場合うまく処理できないバグがあった.
attr=’”a” “b”‘
他にも !DOCTYPE があるとうまく処理できていなかった.
また,そのデータの出力(Save_xml)も attr=””a” “b”” となってうまくなかった.
parsexml.hxx
xml_out.hxx
Win10 で 3mf の読込み
https://itl.mydns.jp/i_Tools/Doc/blog/data_3mf/duck.html
バージョン | 読込 | 保存 | |
Print 3D | 3.3.7910.0 | stl obj 3mf wrl ply | |
ペイント 3D | 5.1904.8017.0 | 3mf stl ply obj glb fbx | 3mf glb fbx |
3D ビューアー | 6.1903.4012.0 | 3mf fbx obj stl ply gltf glb | glb |
3D Builder | 16.1.1431.0 | stl obj 3mf wrl ply gltf glb | 3mf stl obj ply gltf glb |
duck.3mf は Print 3D と 3D Builder ではうまく読めない.
ペイント 3D で読んだ duck.3mf を Paint_3D_duck.3mf としてそのまま保存.
その状態であればどれでもちゃんと開ける.
もっと単純なデータで確認.Cube_org.3mf
幾つかの面のテクスチャが貼られていない.
ペイント 3D は大丈夫.
テクスチャ座標を 0 ~ 1 の範囲にしたものでは大丈夫.
0 ~ 2 や -2 ~ 2 にしたものは,Print 3D では 0 ~ 1 のみうまく貼りつく.Cute_tx2.3mf
//mish.work/…/i_Tools/
Joomla! の SEO 設定
Joomla! で作成したページのソースを表示した時,ページの内容と異なる meta 情報が目についた.
特に何も指定しないと?「システム」-「グローバル設定」-「サイト」の「META要素の設定」が入るみたい.
条件はわからないが Google などの検索結果 には,記事の抜粋した情報になっているページも多い.
検索された「カテゴリ」ページはあまり意味のない内容になってしまっている.
Joomla! の設定をいろいろ弄っていると,あった.
記事の編集画面で「公開」タブに切替.
右上に meta 情報を入力する欄がある.
記事だけでなく「カテゴリ」のページも同様に編集できる.
Joomla! に「検索ボックス」の追加
Joomla! のサイト内検索を行いたいと思い「検索ボックス」の追加の手順.
「エクステンション」-「モジュール」の画面から「新規」.
「モジュールの種類の選択」となるのでその中の「検索」を選択.
「タイトル」と「表示位置」を指定して「保存」.
「プレビュー」などで確認.
https://jml.mish.work/
https://mish.work/joomla/
WSS その後 – 2
先日「カートリッジを交換」したが,あまり状況は変わらない…
先週は比較的安定していたように思うが,今週に入ってからまた「シャットダウン」されている.
「Windows Server バックアップ」がうまく動作していない?ので,タイミングを「5:00」から「3:00」に変更.
これで状況が変われば,もう少し進展するかも.
2019/07/22
7/20 3:20 頃にも再起動された.
それと,今日起動して 1 時間後位にも再起動となった.
やはり「バックアップ」が関係しているものと思われる.
しかし,エラーの表示が見当たらないのでどう対応したものか…
「バックアップ」機能を止めて様子見.
2019/08/02
「Windows バックアップ」が影響していたみたいで,その後再起動がかかることはなく動作している.
FBX SDK 2019.2 で LNK2019
先日の FBX SDK を使用したプロジェクトを VC 2017 と FBX SDK 2019.2 に上げてビルドすると,
LibFbxSDK-MD.lib(fbxmanager.obj) : error LNK2019: 未解決の外部シンボル _xmlCleanupParser が関数 "void __cdecl fbxsdk::Close3rdPartyLibraries(void)" (?Close3rdPartyLibraries@fbxsdk@@YAXXZ) で参照されました。 LibFbxSDK-MD.lib(fbxiosettings.obj) : error LNK2019: 未解決の外部シンボル _xmlStrcmp が関数 "struct _xmlNode * __cdecl fbxsdk::GetChildXmlNode(struct _xmlNode *,class fbxsdk::FbxString *)" (?GetChildXmlNode@fbxsdk@@YAPAU_xmlNode@@PAU2@PAVFbxString@1@@Z) で参照されました。 LibFbxSDK-MD.lib(awCacheDescriptionIO.obj) : error LNK2001: 外部シンボル "_xmlStrcmp" は未解決です。 LibFbxSDK-MD.lib(fbxiosettings.obj) : error LNK2019: 未解決の外部シンボル _xmlNewDoc が関数 "public: virtual bool __thiscall fbxsdk::FbxIOSettings::WriteXMLFile(class fbxsdk::FbxString const &)" (?WriteXMLFile@FbxIOSettings@fbxsdk@@UAE_NABVFbxString@2@@Z) で参照されました。 LibFbxSDK-MD.lib(xmlHelper.obj) : error LNK2001: 外部シンボル "_xmlNewDoc" は未解決です。 ...
今まで LibFbxSDK-MD.lib のみだったが,libxml2-md.lib と zlib-md.lib が増えた(分割された?)みたい.
スタティックリンクの場合は,それぞれ LibFbxSDK-MT.lib , LibXml2-MT.lib , zlib-MT.lib .
リンク対象にこれらを加えれば OK .
2019/09/05 FBXSDK_VERSION_MAJOR を利用した方法に変更 .
2020/12/15 fbx_def.hxx と fbx_lib.hxx として整理 .