WindowsXP x64の環境でVC++2005でコンパイルすると64bitを生成しますが、リンクするモジュールが32bitなので、エラーになります。

fatal error LNK1112: モジュールのコンピュータの種類 ‘X86′ は対象コンピュータの種類 ‘x64′ と競合しています。

強制的に32bitでコンパイルするオプションはあるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

[ビルド]メニューの下に、構成マネージャというのがないでしょうか。


そこを'x86'に設定すれば、32bitでビルドされるのではないかと。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qlibpngのコンパイルについて。

今回、初めてMRTGサーバの構築を行う事になったので
すが、コンパイルの時点で行き詰ってしまいました。
http://www.mrtg.jp/doc/unix-guide.html
のサイトを参考にして、
/usr/local/bin/make -f scripts/makefile.std CC=/usr/local/bin/gcc ZLIBLIB=../zlib ZLIBINC=../zlib
とコマンドを打って実行したのですが、
make:ar:command not found
と言う様な結果がでてエラーでコンパイルできません。
make,gccは/usr/local/bin配下にインストールされて
います。
arというもののパスを探しても見つかりません。
arは事前にインストールが必要なのでしょうか?
どなたか分かる方、アドバイスお願い致します。
ちなみにlibpngのバージョンは1.0.18だったと思い
ます。

Aベストアンサー

>OSはSolaris8を使用しています。

それならば、バージョンは少し古いですが参考URLにあるサイトにパッケージがありますので、そちらからダウンロードしてインストールというのでもいいかもしれません。

参考URL:http://sunsite.sut.ac.jp/sun/solbin/

Q32bitで作ったアプリケーションの64bit環境へのコンパイル

32bitで作ったアプリケーションの64bit環境へのコンパイル

現在、32ビット環境で作ってWindowsXPで正常に動作しているアプリケーションを、
Windows7などの64ビット環境でWOW64を介せずに起動できるように、x64用に
コンパイルしようと考えています。

今まではVC++2008EEとWindowsSDK,DirectX9を使って組んでいましたが、
ExpressEditionだとx64向けのコンパイルができないと言うことで、2010EEと
WindowsSDK7.1をインストールし、その後構成マネージャで設定をx64にして
XP32bit上でコンパイルしました。ソースコードは全く手を加えない状態だったので、
何かエラー・警告があるかと思いましたが、警告も出ずコンパイルは通り、
64ビット環境で起動することも出来ました。

しかし、起動した直後に処理が非常に重くなり、FPSも10~20程度ではないかと
言うほどに動作がもっさりとしてしまいます。

起動しないわけではないし、動き自体も低速ながら、期待されたもしくは
XP32bitで起動したときと同じように動いているように見受けられます。
よく見るポインタの長さに関しての問題等も、そもそもあった場合エラーが出て
落ちてしまうのではないかと思います。現状ソースを修正するにしても、
エラーも何も出ていないためどこにどう手を加えたらいいのか分かりません。

なにか原因となるものに心当たりがあればご教授いただけると幸いです。
使用ソフトは上記のようにVC++2008と2010、WinSDK,DirectXともにSDKは
(おそらく)最新版でリンクするライブラリのパスにはx64のフォルダを指定、
プリプロセッサの設定で_WIN64を定義しています。
コンパイラも、起動出来てはいるので64ビットのコードを吐くものに
設定されていると思います。

32bitで作ったアプリケーションの64bit環境へのコンパイル

現在、32ビット環境で作ってWindowsXPで正常に動作しているアプリケーションを、
Windows7などの64ビット環境でWOW64を介せずに起動できるように、x64用に
コンパイルしようと考えています。

今まではVC++2008EEとWindowsSDK,DirectX9を使って組んでいましたが、
ExpressEditionだとx64向けのコンパイルができないと言うことで、2010EEと
WindowsSDK7.1をインストールし、その後構成マネージャで設定をx64にして
XP32bit上でコンパイルしました。ソース...続きを読む

Aベストアンサー

See the url below, may be helpful

http://blogs.msdn.com/b/karinm/archive/2007/09/05/updated-windows-sdk-visual-c-cross-compilers.aspx

Qプログラム作成(コンパイル、リンク)でのコマンド

プログラム素人です。
コンパイルオプション、あるいはコマンドなどいろいろとあり判らずにいます。
例えば、

$ gcc -fPIC -c xxx.c
$ gcc -shared -Wl,-soname,libxxx.so.1 -o libxxx.so.1.0 xxx.o
# cp libxxx.so.1.0 /usr/lib
# /sbin/ldconfig /usr/lib
# ln -s /usr/lib/libxxx.so.1 /usr/lib/libxxx.so
とか
$ ar rv libxxx.a xxx.o
$ ranlib libxxx.a
$ strip libxxx.a
など(ほんの一部だと思いますが)これらのコマンドの意味役割など知りたいのですが、書籍などありますでしょうか。
ネット上で検索してみましたがキーワードが悪いのかよいサイトに出会えません。

皆様、よいアドレス、書籍あればご紹介下さい。

Aベストアンサー

まず、実行ファイルを作成するには、最初にソースコードをコンパイルしてオブジェクトコードというものを作成し、複数のオブジェクトコードをリンクという処理を行います。

1. コンパイルについて

基本的には以下のコマンドでコンパイルできます。

$ gcc -c example.c

内部的には cpp によってプリコンパイル (構文解析) され、cc1 によってコンパイルされ、as によってオブジェクトコードになります。

ただし、共有ライブラリ (拡張子が .so のファイル) を作成する場合は、-fPIC オプションが必要になります。

$ gcc -fPIC -c example.c

2. リンクについて

(1) 実行形式ファイルの作成

$ gcc -o example example1.o ... examplen.o

シンボルテーブルを削除する場合はさらに、

$ strip example

とします。(strip するとファイルサイズを小さくすることができますが、デバッグができなくなってしまうので、基本的にライブラリは strip しません)

(2) 静的ライブラリの作成

$ ar cr libexample.a example1.o ... examplen.o
$ ranlib libexample.a
※ ar コマンドは tar のようなものと考えてもらえればと思います。

(3) 共有ライブラリの作成

$ gcc -shared -o libexample.so example1.o ... examplen.o

(4) 静的ライブラリや共有ライブラリの利用について

libexample1.so または libexample1.a
libexample2.so または libexample2.a

を利用する場合、

$ gcc -o example example.c -L/usr/local/lib -lexample1 -lexample2

-L オプションはライブラリが存在するディレクトリを指定します。ただし、/lib または /usr/lib にライブラリが存在する場合は -L オプションを指定する必要はありません。

また、特に何もオプションを指定しない場合で、静的ライブラリと共有ライブラリの両方が存在する場合は、共有ライブラリとリンクが行われます。

あとは、いろんなプログラムを make しまくって勉強して下さい。あまりこの分野の書籍がないのが実情です。

まず、実行ファイルを作成するには、最初にソースコードをコンパイルしてオブジェクトコードというものを作成し、複数のオブジェクトコードをリンクという処理を行います。

1. コンパイルについて

基本的には以下のコマンドでコンパイルできます。

$ gcc -c example.c

内部的には cpp によってプリコンパイル (構文解析) され、cc1 によってコンパイルされ、as によってオブジェクトコードになります。

ただし、共有ライブラリ (拡張子が .so のファイル) を作成する場合は、-fPIC オプションが必...続きを読む

QVISTA64bit,VS2005/C++で対象コンピュータを「x64

VISTA64bit,VS2005/C++で対象コンピュータを「x64」にして簡単なプログラムをビルドすると以下のエラーが出てしまいます。

「1>.\Debug\stdafx.obj : fatal error LNK1112: モジュールのコンピュータの種類 'X86' は対象コンピュータの種類 'x64' と競合しています。」

OS   :VISTA Ultimate64bit
CPU   :Xeon5080(64bit),
開発環境:VS2005 Team Edition for software developers完全インストール

◎OSもCPUも64bit対応なのに何故かモジュールのコンピュータは32bitでビルドしてしまいます。解決方法はありますでしょうか?

追記:気になることは、VS2005が普通の「Program files」のフォルダではなく「Program Files(x86)」に強制的にインストールしてしまうことです。

Aベストアンサー

ちょっと見にくいですが、
http://www.itmedia.co.jp/enterprise/articles/0506/15/news006.html
の「Fig.4 Visual Studio 2005β版セットアップ画面」
にある「x64コンパイラおよびツール」をチェックONにしてインストール
していますか?
(この画面はβ版なので、製品版と若干違うかもしれません。)

例え64ビット環境にインストールしたとしても、
VisualStudio2005は、32ビットアプリケーションです。
なので「Program Files(x86)」にインストールされるのは正常です。
それでも64ビットアプリの開発ができるのは、クロスコンパイル環境になっているからです。
上記のチェックボックスもデフォルトはOFFだったと思います。

Qソースコードのコンパイルについて

ソースコードのコンパイルについて

よくソースコードだけしか公開されていないソフトを見かけますが、これらはWindows, Mac, LinuxそれぞれでコンパイルすればそれらのOSで動くようになるのでしょうか?例えばCで書かれたソースコードをWindowsでコンパイルすればexeに自動的にコンパイルされ、MacでコンパイルすればMac用のバイナリに自動的にコンパイルされるのでしょうか?

またMacにはLinuxのシェルがあったと思うのですが、MacでコンパイルしたものはLinuxで動きますか?またその逆はできるのでしょうか。

Aベストアンサー

> よくソースコードだけしか公開されていないソフトを見かけますが、これらはWindows, Mac, LinuxそれぞれでコンパイルすればそれらのOSで動くようになるのでしょうか?

C言語で書かれたソースのみというソフトはほとんど見かけません。
Unix系のソフトだとconfigureやxmkmf・imakeなどを使って構築環境との整合をとりコンパイルする(コンパイルの前にシェルスクリプトやm4, makedependなどの前処理を行う)ソフトがほとんどなのでそれらの動く環境でないと構築は面倒です。


> 例えばCで書かれたソースコードをWindowsでコンパイルすればexeに自動的にコンパイルされ、MacでコンパイルすればMac用のバイナリに自動的にコンパイルされるのでしょうか?

C言語の教科書にでているようなコンソールアプリでC言語の規格のみ(言語仕様と標準ライブラリ)使っているようなソフトだとそういう事もありますが、通常のソフトは大抵様々な環境に依存した部分が含まれてますので公開されているソースコードの前提としている環境を整えて構築する必要があります。
同じWindows用といっても、xx C用のソースはyy Cではコンパイルできない(動かす為には一部を書き換える調整が必要)といった事もあります。


> またMacにはLinuxのシェルがあったと思うのですが、MacでコンパイルしたものはLinuxで動きますか?またその逆はできるのでしょうか。

MacはCMU Machを基盤に(NeXTからMac OS Xで色々カスタマイズされ変わっているでしょうが)、中間層にBSDを加えて作られているOSなのでMacでコンパイルしたものはLinuxでは動きません。

MacにはMac on LinuxというLinux互換環境がありますので、それを使えばLinuxで動くソフトも作れるでしょう。
※ Linuxの開発環境を整える必要はあるでしょうが。


Linuxと一言で書かれてますが、Linux同士でもコンパイル済みバイナリは使っているライブラリのバージョンが違えば動かなかったりするので動かす為には調整が必要な場合は多いですよ。
※ ソースから構築した方が良い。古いセキュリティリスクのあるかも知れないライブラリ入れたくはないだろうし、確認も面倒だし。

Linux同士であれMacのLinuxエミュレーション環境とLinuxであれ、コンパイル済みのバイナリを他のシステムで動かそうと思うとライブラリの調整などは必要となります。必ず手軽に動くとは考えない方が良いでしょう。
手間をかければ動かない事はないでしょうが。

> よくソースコードだけしか公開されていないソフトを見かけますが、これらはWindows, Mac, LinuxそれぞれでコンパイルすればそれらのOSで動くようになるのでしょうか?

C言語で書かれたソースのみというソフトはほとんど見かけません。
Unix系のソフトだとconfigureやxmkmf・imakeなどを使って構築環境との整合をとりコンパイルする(コンパイルの前にシェルスクリプトやm4, makedependなどの前処理を行う)ソフトがほとんどなのでそれらの動く環境でないと構築は面倒です。


> 例えばCで書かれたソースコード...続きを読む

Qアプリを32bitから64bit移行

いまさら、のしつこいような質問で゛申し訳ありません。

今だによくわかっていないので、教えてください。

今、64bitのwindowsのwowで動いている32bitアプリを純粋に!?
64bit上で動かすにはどうしたらよいか、、、
コンパイラーを64bit版にする程度しか、わかりません。

ソースコード的にどれ(データ型?、関数?)をどのように直せばいいのか、
探すのは得意なほうだと思っているのですが、なかなか見つかりません。

下記の情報はあってるでしょうか?

int
CString
time_t
などが変更必要?という情報は見つけましたが、(あってますか?)



int → long? 、 printf()では %d → %ld? 
CString → リコンパイルだけでよい?
time_t → 使ってますがソースコード的にどう変更したらよい?


他にもいろいろあると思うのですが
対象のアプリがかなり旧いので(VisualStudio6.0 c++)、よけい探せないのかも知れません。

VisualStudioも64bit対応用に新しく買ってもらわないといけないと思うのですが
はたして使いこなせるか。(これは別問題ですね)


修正規模を出せと言われてるのですが、
どう返事をしたら良いものか、

どうかアドバイスをお願いいたします。

いまさら、のしつこいような質問で゛申し訳ありません。

今だによくわかっていないので、教えてください。

今、64bitのwindowsのwowで動いている32bitアプリを純粋に!?
64bit上で動かすにはどうしたらよいか、、、
コンパイラーを64bit版にする程度しか、わかりません。

ソースコード的にどれ(データ型?、関数?)をどのように直せばいいのか、
探すのは得意なほうだと思っているのですが、なかなか見つかりません。

下記の情報はあってるでしょうか?

int
CString
time_t
などが変更必要?という情報は見...続きを読む

Aベストアンサー

>もしかして何もしなくていいのかな、、、というところです。
>ホントですかね???

Windows の場合は、アプリでは何もしなくてよいことも多いですよ。

ただし、Windows では整数型のサイズが変わらないので、
動きますけど、32ビットの制限がそのまま残ったりします。

QJavaのコンパイルについて

どうでもいいことかも知れませんが少し気になったので質問します。以下のようなプログラムを作成しました。
(1) Client.java
main()有り、main内でServerのインスタンス作成
(2) Server.java
main()無し、インターフェイスの定義のみ
(3) ServerImpl.java
main()有り、main内で自分自身(ServerImpl)のインスタンス作成

いつもはフォルダ内でjavac *.javaとコンパイルしてきたのですが、たまたま今日は一つずつコンパイルしてみました。一ファイルずつコンパイル出来るものかと思っていたのですがそうではなく、
(2)は単独でコンパイル出来る。
(1)と(3)は単独でコンパイル出来ない。((1)は(2)と同時にコンパイルする必要がある。(3)は(2)と同時にコンパイルする必要がある。)
であることを初めて知りました。つまり関連するクラスは一緒にコンパイルしなければならないということだと思うのですが、普通は関連するjavaファイルだけのMakefileをそれぞれ作るのでしょうか?それも大変だと思うのですが。。それともjavac *.javaのように一括でコンパイルするのが普通なのでしょうか?もし毎回全ファイルをコンパイルすると、修正のないものまでコンパイルしてしまうことになると思いますがそういうものなのでしょうか?質問がちょっと意味不明で恐縮ですが一人で小さなプログラムを作成したことしかないので、会社などで大規模なプログラムを作成している現場では普通どうやっているものか知りたくて質問しました。

どうでもいいことかも知れませんが少し気になったので質問します。以下のようなプログラムを作成しました。
(1) Client.java
main()有り、main内でServerのインスタンス作成
(2) Server.java
main()無し、インターフェイスの定義のみ
(3) ServerImpl.java
main()有り、main内で自分自身(ServerImpl)のインスタンス作成

いつもはフォルダ内でjavac *.javaとコンパイルしてきたのですが、たまたま今日は一つずつコンパイルしてみました。一ファイルずつコンパイル出来るものかと思っていたのですがそうで...続きを読む

Aベストアンサー

こんにちは。
コンパイルについてですが、そもそも、関連するソースを一緒にコンパイルする必要はありません。ただ、関連するソースをコンパイルしてできたクラスファイルは必要です。
つまり、
(1)をコンパイルする場合は(2)のクラスファイル(???.class)が必要です。(2)のクラスファイルをjavacコマンドのオプションのclasspathで設定してやると(1)単体でコンパイルできます。

また、(2)のファイルを編集した場合は、(1)と(3)のファイルもコンパイルし直した方が無難でしょう。

Eclipseなどは、それらの依存関係によって再コンパイルするファイルを決定していると思われます。

業務では、、、開発者のレベルではEclipseなどのIDEにコンパイルはまかせてしまってます。結合テストやそれ以降のテスト段階、本番環境への完成物のリリースをする際は、既出のantやmavenなどのビルドツールを使っています。Eclipseが不要になり、コマンドラインで利用できますから。

参考URL:http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/tooldocs/solaris/javac.html

こんにちは。
コンパイルについてですが、そもそも、関連するソースを一緒にコンパイルする必要はありません。ただ、関連するソースをコンパイルしてできたクラスファイルは必要です。
つまり、
(1)をコンパイルする場合は(2)のクラスファイル(???.class)が必要です。(2)のクラスファイルをjavacコマンドのオプションのclasspathで設定してやると(1)単体でコンパイルできます。

また、(2)のファイルを編集した場合は、(1)と(3)のファイルもコンパイルし直した方が無難でしょう。

Eclipseなどは、それら...続きを読む

Q64bit環境で32bitのodbc参照

いつもお世話になっております。
以下のC#のプログラムを
windows 7 home premium(x64)
visual studio 2008 express edtion (x86)
でビルドして実行すると
一番最後の行(da.Fill(dt);)のところで
ERROR [IM002] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。
という例外がでます。

//CSVファイルのあるフォルダ
string csvDir = @"D:\";
//CSVファイルの名前
string csvFileName = "test.csv";


//接続文字列
string conString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="
+ csvDir + ";Extensions=asc,csv,tab,txt;";
System.Data.Odbc.OdbcConnection con =
new System.Data.Odbc.OdbcConnection(conString);

string commText = "SELECT * FROM [" + csvFileName + "]";
System.Data.Odbc.OdbcDataAdapter da =
new System.Data.Odbc.OdbcDataAdapter(commText, con);

//DataTableに格納する
DataTable dt = new DataTable();
da.Fill(dt);

たしかにスタート->コントロールパネル->管理ツール->データソース(ODBC)の
ドライバーの欄を見るとMicrosoft Text Driverが入っていません。

しかし、
C:\Windows\SysWOW64\odbcad32.exe
を実行してドライバーを見ると
Microsoft Text Driver (*.txt; *.csv)
が入っているので、32ビットのほうには入っていると思っています。

下記サイトに以下のような記載があるのですが、

http://technet.microsoft.com/ja-jp/windows/gg182762

-----------------------------------------------------------------------
データベースに接続する構成ができずにデータベースに接続できないといったことが起こります。しかし、32 ビットと 64 ビットの特性を正しく理解できれば、「%windir%\SysWOW64\odbcad32.exe」へアクセスすることで今まで通り ODBC ドライバを扱うことができます。
-----------------------------------------------------------------------

%windir%\SysWOW64\odbcad32.exeにアクセスするようにするには、
どのようなプログラムを書けばよいのでしょうか。

どなたかご教授よろしくお願いいたいます。

いつもお世話になっております。
以下のC#のプログラムを
windows 7 home premium(x64)
visual studio 2008 express edtion (x86)
でビルドして実行すると
一番最後の行(da.Fill(dt);)のところで
ERROR [IM002] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。
という例外がでます。

//CSVファイルのあるフォルダ
string csvDir = @"D:\";
//CSVファイルの名前
string csvFileName = "test.csv";


...続きを読む

Aベストアンサー

デフォルトの設定は AnyCPU という設定になっていて、

実行環境が 64bit なら 64bit アプリケーションとして
実行環境が 32bit なら 32bit アプリケーションとして

動作するようになっているようです。
なので、

コントロールパネル->管理ツール->データソース(ODBC)

のデータソースの方を参照しているのでしょう。
Standard 以上の Edition であればプロジェクトのプロパティで

AnyCPU/x86(32bi)/x64(64bit)

などから選択できるようになっていますが、Express Edition では選択できない(該当する項目がない)ようです。
http://msdn.microsoft.com/ja-jp/library/5b4eyb0k(v=vs.100).aspx

ですが、Express Edition であっても .csproj ファイルの

<PropertyGroup ~ >
・・・
</PropertyGroup>

の中の

<PlatformTarget>AnyCPU</PlatformTarget>



<PlatformTarget>x86</PlatformTarget>

に書き換えれば(なければ追加)32bit 固定になり、64bit 環境でも 32bit アプリケーションとして動作するようになるらしいです。

デフォルトの設定は AnyCPU という設定になっていて、

実行環境が 64bit なら 64bit アプリケーションとして
実行環境が 32bit なら 32bit アプリケーションとして

動作するようになっているようです。
なので、

コントロールパネル->管理ツール->データソース(ODBC)

のデータソースの方を参照しているのでしょう。
Standard 以上の Edition であればプロジェクトのプロパティで

AnyCPU/x86(32bi)/x64(64bit)

などから選択できるようになっていますが、Express Edition では選択できない(該当する項目がな...続きを読む

Qコンパイルしたらマシン語になる?

基本的な質問かもしれないのですが:
●プログラミング言語をコンパイルしたらマシン語になるのでしょうか?
●マシン語になるとしたら、なぜ、Windowsのgccでコンパイルした実行ファイルはUnix上で動かないのでしょうか?

C言語などのプログラミング言語は人間が理解できる言葉で書かれていて、これをマシン(例えばIntelのCPU)が理解できる言葉に変換するのが「コンパイル」だと今まで私は理解していました。だから、IntelのCPU上でコンパイルした場合、他のCPUでは動かないのだと納得していました。

しかし、IntelのCPUが理解する言葉になるのであれば、WindowsでコンパイルしてもUnixでコンパイルしても IntelのCPUの言葉になっている点で変わりがないような気がします。しかし、Windowsでコンパイルした実行ファイルはUnixでは動かないですよね。私は根本的な勘違いをしていると思うのですが、それが何かを教えて頂けると幸いです。

Aベストアンサー

#3です。

> コンパイルした実行ファイルは
> (1)CPUに直接働きかける部分
> (2)OSの機能を使って、間接的にCPUに働きかける部分
> の両方を持っているのでしょうか?

他の方も書いていますが、実際のプログラムが動作する場合においては、両方が混じっています。
(2)の部分のイメージとしてですが、例えば
void main() {
printf("hello world");
}
といったプログラムを実行した場合を考えます。

これを実際に実行した場合、Unixではコンソール、Windowsではコマンドプロンプトに文字が出力されるわけですが、このそれぞれの画面に文字を出力する、という処理は各OSの機能によるものになります。

こういった部分があるため、OS依存性がでることになります。
また、stdio.hなどの基本機能とOS機能のなかだちをする処理が、コンパイルの中でもリンクといわれる処理になります。(・・・で、よかったと思います。)

QC言語で32Bit*32Bitの演算は出来ますか?

初めまして、現在、組み込みマイコンの開発で、アルテラ社のNios2を使用して他の人がコーディングした日立SH2から置換え作業をしています。
いままではinline_asmを利用して、64Bit演算をしていました。
a*b=sig_h(上位32Bit)、sig_l(下位32Bit)
void mac( long *a, long *b, long *sig_h, long *sig_l )
{
STS.LMACL,@-SP
STS.LMACH,@-SP
LDS.L@R7+,MACL
LDS.L@R6+,MACH
MAC.L@R4+,@R5+
STS.LMACH,@-R6
STS.LMACL,@-R7
LDS.L@SP+,MACH
LDS.L@SP+,MACL
}
この64Bit演算をC言語だけで求める方法はあるのでしょうか?
Nios2のマニュアルがすべて英語なので同じようなことが出来るかどうか調べている最中です。
いい案があればアドバイスの程お願いします。

Aベストアンサー

日本アルテラ - Nios II 統合開発環境http://www.altera.co.jp/products/software/products/nios2/emb-nios2_ide.html

を見ると、コンパイラはGCCを使っているようですから、
64bit整数型として long long intが使える可能性が高いと思われます。
実際使えるかどうかは、マニュアルで確認してください。

使えるなら、longをlong longにキャストしてから計算すれば、64bitの演算結果が得られます。

参考URL:http://www.altera.co.jp/products/software/products/nios2/emb-nios2_ide.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング