NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

NIVISA Linux コンパイルできない

解決済み
解決策を見る

LINUXでNIVISAを使用してTCP/IP通信でSCPIコマンドを送信しようとしています。

NIVISA、Nidaqbaseなどはインストールでき、テストパネルから文字列を送信できるところまでは確認できておりますが、

以下の簡単なCプログラムを作成し、GCCにてコンパイルしようとしていますが、エラーが出てしまい進みません。

何か助言を頂けると助かります。


#include <stdio.h>
#include <string.h>

#include "visa.h"


int main(int argc, _TCHAR* argv[])
{
    ViSession rm, inst;
    ViStatus viError;
    ViUInt32 retCount;

 

    viError = viOpenDefaultRM(&rm);
    viError = viOpen(rm, "TCPIP0::192.168.1.199::inst0::INSTR", VI_NULL, VI_NULL, &inst);
    viError = viWrite(inst, (ViBuf)":SENS:FREQ:CENT 2GHZ¥n", 20, &retCount);

 

    viError = viClose(inst);
    viError = viClose(rm);
    return 0;

}

 

 

 

# gcc MS2720T.c -lm - I/usr/local/include/ -L/usr/local/vxipnp/linux/lib/libvisa.so

 

以下のようなエラーが出ます。

/tmp/ccM8DhQ7.o: In function 'main':

MS2720T.c:(.text+0x21): undefined reference to 'viOpenDefaulRM'

MS2720T.c:(.text+0x44): undefined reference to 'viOpen'

MS2720T.c:(.text+0x65): undefined reference to 'viWrite'

MS2720T.c:(.text+0x72): undefined reference to 'viClose'

MS2720T.c:(.text+0x72): undefined reference to 'viClose'

collect2: ldはステータス 1 で終了しました。

 

ちなみに環境は

 CentOS6.6-x86_64 64bit(RedHat系)

 GCC-4.4.7

です。

 

別の投稿のLINUX上でNIVISAを使用できないという投稿も参考にさせて頂きました。

 

まだまだ未熟なもので、ご助言願います。

よろしくお願いいたします。

 

 

 

0 件の賞賛
メッセージ1/2
4,323件の閲覧回数
解決策
トピック作成者umekiyoが受理

お騒がせしました。

CentOS6.6 32bit環境でコンパイルした場合、

エラーなく実行ファイルを生成する事が出来ました。

 

よく見るとLinuxの場合、32bitアプリケーションのみサポートされているようで、

ライブラリが64bitに対応していないため、リンクできずエラーとなっていました。

勉強不足ですみません。

ありがとうございました。

0 件の賞賛
メッセージ2/2
4,301件の閲覧回数