
extern void __byte_order_change(int, int, byte_t*, int) attribute_hidden ;
#define__byte_order_to_host(b,p,l) __byte_order_change(b, __STDF_HOST_BYTE_ORDER, p, l)
#define__byte_order_to_src(b,p,l) __byte_order_change(__STDF_HOST_BYTE_ORDER, b, p, l)
プロンプトでコンパイルしようとすると、上記プログラムの1行目で以下のようなエラーが出ます。
c:\users\10044709\desktop\ttプロジェクト\stdf\libstdf-0.4\src\dtc.h(19) : error
C2061: 構文エラー : 識別子 'attribute_hidden'
c:\users\10044709\desktop\ttプロジェクト\stdf\libstdf-0.4\src\dtc.h(19) : error
C2059: 構文エラー : ';'
また、VSで開いてみると、【attribute_hidden】は『'{'が必要です』と表示され、
extern voidの後の【__byte_order_change】には
『名前のないプロトタイプパラメータには、本体が存在する場合は使用することはできません』と
表示されます。
ちなみに【attribute_hidden】の定義先は以下の通りですが、VS上ではエラーは出ていません。
# if !defined(attribute_hidden)
# define attribute_hidden __attribute__ ((visibility ("hidden")))
# endif
#else
# define attribute_unused
# if !defined(attribute_hidden)
# define attribute_hidden
# endif
#endif
エラーNo.で検索しても原因がよく判らず、
是非とも教示頂きたく、何卒宜しくお願い申し上げます。
No.3ベストアンサー
- 回答日時:
↑これですか?
INSTALL ファイルを開いてみたところ
VCでのコンパイル法がでていますが、必要なファイルが含まれていないですね。
で、一つ前のバージョンをDLしてみたところ、VCで必要なファイルが含まれているみたいです。
最新版は、VCでコンパイル出来るようにはなっていないのでしょう。
その通りです。
わざわざ確認して頂きまして誠に有難う御座います。
足りないファイルは違うサイトから落としてきたり、
インクルードが足りない部分は書き足したりして
何とか思ったとおり(上長には未確認ですが・・・)の変換が
出来ました。
No.2
- 回答日時:
使っているコンパイラは VC++ のようですが、GCC の拡張機能である __attribute__ は VC++ では使えないかと思います。
その使えない機能を attribute_hidden マクロで使っているため、VC++ がエラーと出しているように見えます。
この回答への補足
用件と致しまして、
あるオープンソースを使用してコンパイルしそれを元に処理をしたい。
しかし、ソースがC言語ですが未経験の為、ネットで調べた所、VSで開けるとあったのでVSで開いて見ていたり、NMAKEというWin上でもC言語をコンパイルできるとあったので試してみた所、記載のようなエラーが出ております。
知識が無さ過ぎてVC用なの?というお話ですが、それさえも判断が出来ておりませんでした。
現状ではNMAKEは使用せず、MinGWを入れてコンパイルを実施している最中ですが、やはりエラーが出ております。
ちなみに、オープンソースのコンパイル例にて
【gcc -o AAA AAA.c -lstda】とありますが、
『-lstda』とはコンパイルのオプションでしょうか?それともファイル名でしょうか?
上記コマンドをプロンプトより実施した時エラーとして
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lstda
collect2.exe: error: ld returned 1 exit status
と出力されるのですが、それすら判断できておりません。
以上、何卒宜しくお願い申し上げます。
No.1
- 回答日時:
これは、VC用のプログラムなの?
># define attribute_hidden __attribute__ ((visibility ("hidden")))
この構文はGCCの拡張構文のように見えるけど、VCでも使えるの?
https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Fun …
この回答への補足
用件と致しまして、
あるオープンソースを使用してコンパイルしそれを元に処理をしたい。
しかし、ソースがC言語ですが未経験の為、ネットで調べた所、VSで開けるとあったのでVSで開いて見ていたり、NMAKEというWin上でもC言語をコンパイルできるとあったので試してみた所、記載のようなエラーが出ております。
知識が無さ過ぎてVC用なの?というお話ですが、それさえも判断が出来ておりませんでした。
現状ではNMAKEは使用せず、MinGWを入れてコンパイルを実施している最中ですが、やはりエラーが出ております。
ちなみに、オープンソースのコンパイル例にて
【gcc -o AAA AAA.c -lstda】とありますが、
『-lstda』とはコンパイルのオプションでしょうか?それともファイル名でしょうか?
上記コマンドをプロンプトより実施した時エラーとして
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lstda
collect2.exe: error: ld returned 1 exit status
と出力されるのですが、それすら判断できておりません。
以上、何卒宜しくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
コールバック関数指定時のエラー
-
Excelのエラーで困ってます。
-
visual C++ でビルドの中止がで...
-
SQLServerについて
-
バッチからsqlplusの接続エラー...
-
コンパイルできません。
-
フォートランプログラムのエラ...
-
レコードセットをcloseする所で...
-
BC30002: 型 'ListItem' が定義...
-
VC2010のビルドエラーを全部出...
-
Visual Studioのstrcpy_sについて
-
VisualC++でエラーが大量に
-
エクセルのエラーメッセージ「4...
-
左側がクラス、構造体、共用体...
-
ASP.NETの実行時のエラーについて
-
BCC・stdio.h・_stddef.hのエラー
-
multiple definitionというエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
適切な変換関数が存在しない???
-
visual C++ でビルドの中止がで...
-
fortranでプログラムを実行する...
-
デバッグ中のエラーのことで教...
-
Handlesについて
-
HEWを使用しているのですが、こ...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
コンパイルできません。
-
DLL関数を使ったプログラム
-
sys/time.hのインクルードがで...
-
ccコマンド時の0711-317エラー
-
左側がクラス、構造体、共用体...
-
c#プログラムについて
-
Visual Studioのstrcpy_sについて
-
LPCWSTRとchar
おすすめ情報