libxlsxwriterを使用してMS Excelとやりとりするプログラムを作成しようとしています。私はMingw-w64でMSYS2を使ってアプリケーションをビルドしています。私がgccの64ビット版で自分のコードをコンパイルしようとすると、すべてがうまく動作します。しかし、gccの32ビット版でコンパイルしようとすると、私が使用するすべての関数に対してこのようなエラーが発生します:C:\msys64\tmp\ccknaH4k.o:main.cpp:(.text+0x16): undefined reference to 'workbook_new'
。どうなり得るか?libxlsxwriterでプログラムをビルドするときに[...]への未定義参照
2
A
答えて
1
ライブラリは、32ビットではない、あなたはそれを32ビットのバイナリをリンクしようとするので、リンカは64ビットのシンボルを見つけることができるだけである、唯一の64ビットのために構築されているように見えます個です。
これを解決するには、32ビットバージョンのライブラリをコンパイルまたはダウンロードする必要があります。
関連する問題
- 1. `yylex 'への未定義参照&&` yyin'への未定義参照
- 2. Qakeをcmakeでビルドするときの未定義の参照
- 3. F_への未定義参照と
- 4. ソースからのカールのビルド - SSL_CTX_set_alpn_protosへの未定義参照
- 5. 最小限のCプログラムで "main"への未定義の参照
- 6. 未定義の参照 ' - `デジタル時計:: staticMetaObjectへの未定義参照' - Qtの
- 7. クラスのvtableの `へと未定義の参照`クラスのtypeinfoのへの未定義参照
- 8. eclipse(cedora)のcプログラムのpthread_createへの未定義参照
- 9. GCCプログラム関数への未定義参照(複数のフォルダ)
- 10. (.text + 0x20):未定義の `main 'への参照と関数への未定義参照
- 11. Ffmpeg: `avcodec_decode_video 'への未定義の参照
- 12. 'g_Templates'への未定義の参照
- 13. 「inflate」への未定義の参照
- 14. `gnuplot_init() 'への未定義の参照
- 15. オブジェクトへのC++の未定義参照
- 16. GetMonitorColorTemperatureへの未定義の参照
- 17. '_imp__InitBizLib'への未定義の参照
- 18. エラー: `sqlite3_open 'への未定義の参照
- 19. outputVLIへの未定義の参照?
- 20. __libc_init_arrayへの未定義の参照
- 21. 'FileReader :: FileReader()'への未定義の参照
- 22. `SavingsAccount :: annualInterestRate 'への未定義の参照
- 23. Boost Threadへの未定義の参照
- 24. 'funtion_name'への未定義の参照
- 25. ParMETIS: `ParMETIS_V3_PartMeshKway 'への未定義の参照
- 26. 未定義のC++エラーへの参照
- 27. CreateProcessWithLogonWへの未定義の参照
- 28. glCompressedTexImage2Dへの未定義の参照
- 29. `forkpty 'への未定義の参照
- 30. アスタリスク: `SQLAllocHandle 'への未定義の参照
ライブラリは、32ビットシステムと64ビットシステム用です。ライブラリを使用するには、そのライブラリを構築する必要があります。私はMINGW32シェルを使用し、 'make 'と' make install'を使って再度コンパイルしましたが、同じ結果が出ました。別の奇妙なことは、コンパイルされたライブラリはデフォルトでは 'C:\ msys64 \ usr \ lib'に置かれていて、32ビットgccを使いたいのであれば、' C:\ msys64 \ mingw32 \ lib'(これはMINGW64シェルでは起こりません)。 – sgrontflix
@sgrontflix、32ビット用にビルドするときに正しい_(32ビット)ライブラリファイルに対してバイナリをリンクしましたか? – ForceBru
私はこのコマンドを使用します---> 'gcc myexcel.c -o myexcel -lxlsxwriter -lz'を実行すると、ライブラリをコンパイルして実行可能ファイルにリンクすることができます。実際に32ビットライブラリをリンクしていることを確認するにはどうすればよいですか?私が愚かに聞こえるならば、私は残念ですが、私はこれらのことに新しいです。 – sgrontflix