CentOSをBaseにpetalinux(Xilinx社)というsystemでドライバmydevをbuild中にErrorが発生しました。
まずXilinx社が提供するxscugic.hというFileをmydevにincludeします。
このFileは補完的にいくつかのinclude Fileを必要とし、その都度追加してきたのですが
#include "iostream"
の場合もそのうちの一つです。これ自身もinclude fileを要求し、そのなかで
bits/stringfwd.h
をincludeしたとき、以下のErrorが発生しました。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
[ALL ] from /home/usr/myprg/build/linux/rootfs/modules/mydev/xil_io.h:61,
[ALL ] from /home/usr/myprg/build/linux/rootfs/modules/mydev/xscugic.h:197,
[ALL ] from /home/usr/myprg/build/linux/rootfs/modules/mydev/mydev.c:34:
[ALL ] /home/usr/myprg/build/linux/rootfs/modules/mydev/bits/memoryfwd.h:50:1: error: unknown type name ‘namespace’
[ALL ] namespace std _GLIBCXX_VISIBILITY(default)
[ALL ] ^
[ALL ] /home/usr/myprg/build/linux/rootfs/modules/mydev/bits/memoryfwd.h:51:1: error: expected ‘,’ or ‘;’ before ‘{’ token
[ALL ] {
[ALL ] ^
[ALL ] In file included from /home/usr/myprg/build/linux/rootfs/modules/mydev/iosfwd:39:0,
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
最後にincludeした"memoryfwd.h"に記述されている‘namespace’という文字列が未定義というErrorらしいです。
過去にも問題があったようです。一例
https://stackoverflow.com/questions/19797188/g-clang-namespace-std-glibcxx-visibilitydefault
petalinuxというシステムでは枠組みが決まっており、path変更などの処置はできません。
このFileが呼ばれない条件を探るしかありません。
ファイルの中身を便宜的に修正ということも考えたのですが、意味を理解していないためそれもできません。
Linux超初心者、何か回避策があればご教示願えれば幸いです。
[リンク内容](以下memoryfwd.hの抜粋です:リンク内容 - リスト)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。