「Qtの設定 - エラー」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == ここでは、Qt CreatorおよびQt Designerに関する様々なエラーと解決方法を記載する。<br> <br><br> == エラー : LNK1158 == エラ…」) |
|||
| 21行目: | 21行目: | ||
解決方法<br> | 解決方法<br> | ||
多重インクルードが発生しているため、多重インクルードを回避する。 | 多重インクルードが発生しているため、多重インクルードを回避する。 | ||
<br><br> | |||
== Qt WebEngine使用時のビルドエラー == | |||
Qt 5において、Qt WebEngine(QWebEngineViewクラス等を使用して、<code>QT += webengine</code>を有効にする時)を使用してビルドする時、以下に示すようなビルドエラーが発生する場合がある。<br> | |||
# ビルドエラーの例 | |||
/usr/bin/ld: /<Qt 5のインストールディレクトリ>/<Qt 5のバージョン>/gcc_64/lib/libQt5WebEngineCore.so: .dynsym local symbol at index 3 (>= sh_info of 3) | |||
/usr/bin/ld: /<Qt 5のインストールディレクトリ>/<Qt 5のバージョン>/gcc_64/lib/libQt5WebEngineCore.so: .dynsym local symbol at index 5 (>= sh_info of 3) | |||
/usr/bin/ld: /<Qt 5のインストールディレクトリ>/<Qt 5のバージョン>/gcc_64/lib/libQt5WebEngineCore.so: .dynsym local symbol at index 6 (>= sh_info of 3) | |||
... 略 | |||
<br> | |||
これを回避するには、以下に示す2つの方法がある。<br> | |||
* 方法 1 | |||
** まず、binutils-goldライブラリをインストールする。 | |||
**: <code>sudo zypper install binutils-gold</code> | |||
** 次に、Qtプロジェクトファイル(.pro拡張子)において、リンカーフラグを設定する。 | |||
**: <code>CONFIG += use_gold_linker</code> | |||
*: <br> | |||
* 方法 2 | |||
** まず、lldライブラリをインストールする。<br>なお、LLVMのソースコードから、ビルドおよびインストールしてもよい。 | |||
**: <code>sudo zypper install lld</code> | |||
** 次に、Qtプロジェクトファイル(.pro拡張子)において、リンカーフラグを設定する。 | |||
**: <code>CONFIG += use_lld_linker</code> | |||
** もし、CMakeを使用している場合は、CMakeファイルにおいて、リンカーフラグを指定する。 | |||
**: <code>if (UNIX)</code> | |||
**:: <code>set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")</code> | |||
**:: <code>set(CMAKE_CC_FLAGS "${CMAKE_CC_FLAGS} -fuse-ld=gold")</code> | |||
**:: <code>set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")</code> | |||
**: <code>endif()</code> | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Qt]] | [[カテゴリ:Qt]] | ||
2022年6月24日 (金) 09:51時点における版
概要
ここでは、Qt CreatorおよびQt Designerに関する様々なエラーと解決方法を記載する。
エラー : LNK1158
エラー内容
fatal error LNK1158: cannot run ‘rc.exe’が発生する
解決方法
C:\Program Files (x86)\Windows Kits\<バージョン名>\bin\x64ディレクトリにあるrc.exeとrcdll.dllを C:\Program Files (x86)\Microsoft Visual Studio <バージョン名>\VC\bin\amd64にコピーする。
詳細は、以下のWebサイトを参照すること。
http://motchy99.blog.fc2.com/blog-entry-97.html
エラー : LNK2005
エラー内容
fatal error LNK2005 * mainwindow.obj:-1: エラー: LNK2005: "class QDataStream & __cdecl operator<<(class QDataStream &,class Person const &)" (??6@YAAEAVQDataStream@@AEAV0@AEBVPerson@@@Z) は既に main.obj で定義されています。
解決方法
多重インクルードが発生しているため、多重インクルードを回避する。
Qt WebEngine使用時のビルドエラー
Qt 5において、Qt WebEngine(QWebEngineViewクラス等を使用して、QT += webengineを有効にする時)を使用してビルドする時、以下に示すようなビルドエラーが発生する場合がある。
# ビルドエラーの例 /usr/bin/ld: /<Qt 5のインストールディレクトリ>/<Qt 5のバージョン>/gcc_64/lib/libQt5WebEngineCore.so: .dynsym local symbol at index 3 (>= sh_info of 3) /usr/bin/ld: /<Qt 5のインストールディレクトリ>/<Qt 5のバージョン>/gcc_64/lib/libQt5WebEngineCore.so: .dynsym local symbol at index 5 (>= sh_info of 3) /usr/bin/ld: /<Qt 5のインストールディレクトリ>/<Qt 5のバージョン>/gcc_64/lib/libQt5WebEngineCore.so: .dynsym local symbol at index 6 (>= sh_info of 3) ... 略
これを回避するには、以下に示す2つの方法がある。
- 方法 1
- まず、binutils-goldライブラリをインストールする。
sudo zypper install binutils-gold
- 次に、Qtプロジェクトファイル(.pro拡張子)において、リンカーフラグを設定する。
CONFIG += use_gold_linker
- まず、binutils-goldライブラリをインストールする。
- 方法 2
- まず、lldライブラリをインストールする。
なお、LLVMのソースコードから、ビルドおよびインストールしてもよい。sudo zypper install lld
- 次に、Qtプロジェクトファイル(.pro拡張子)において、リンカーフラグを設定する。
CONFIG += use_lld_linker
- もし、CMakeを使用している場合は、CMakeファイルにおいて、リンカーフラグを指定する。
if (UNIX)set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")set(CMAKE_CC_FLAGS "${CMAKE_CC_FLAGS} -fuse-ld=gold")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
endif()
- まず、lldライブラリをインストールする。