Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - ライブラリの読み込み: (2 Items)
   
ライブラリの読み込み  
静的ライブラリを取り込みを検証しようと
下記方法で実行したがエラーとなり実行できない。

プロジェクトでライブラリを作成して
そのライブラリを読み込んで動くかどうかを検証。

●まずはライブラリ作成。

(1)QNX C Project を選択
(2)Project name を今回はA_test_lib(ユニークな名前)としました
   TypeでStatic libraryを選択。
(3)Buile Variants で X86にチェック 他はデフォルト でFinishクリック
(4)ソースファイルを作成
  ファイル名:A_test_lib_main.c
	

#include <stdio.h>

int A_test_tashizan(int a, int b) {

	return(a+b);
	
}

(5)ヘッダーファイルを作成
  ファイル名:A_test_lib_main.h

#ifndef A_TEST_LIB_MAIN_H_
#define A_TEST_LIB_MAIN_H_

extern int A_test_tashizan(int a, int b);

#endif /* A_TEST_LIB_MAIN_H_ */

(6)Project Explorerでプロジェクト名(A_test_lib)の上でPropertiesを選択
(7)QNX C/C++ Project でLibraryのタブでStatic libreryにチェックが入っている事を確認。
(8)Project Explorerでプロジェクト名(A_test_lib)の上でPropertiesを選択し
  メニューのProject-->Build Projectを選択してビルドします。

(9)ここで下段にあるProblemタブ内にエラーやワーニングが無いことを確認。

(10)Run-->Debug Configurationの設定はlibなので出来ません。

●ライブラリを取り込んで動かすメインプログラムを作成します。

(1)QNX C Project を選択
(2)Project name を今回はA_test(ユニークな名前)としました
   TypeでApplicationを選択。
(3)Buile Variants で X86にチェック 他はデフォルト でFinishクリック
(4)Project Explorerでプロジェクト名(A_test)の上でPropertiesを選択
(5)QNX C/C++ Projectを選択し、LinkerタブでCategoryをExtra librariesを選択し
  ProjectボタンでA_test_libの+をクリックして展開し、Staticを選択してOK
   (5.1)またはQNX targetから目的のlibを選択。
(6)ソースファイルを作成
  ファイル名:A_test_main.c
	
#include <stdio.h>
#include "A_test_lib_main.h" // 取り込むヘッダ
void main() {
	int test = A_test_tashizan(4,6);
	printf("kekka = %d\n",test);
}
(7)ライブラリを作成したヘッダーファイル(A_test_lib_main.h)をA_testのプロジェクト下にコピー。
(8)メニューのProject--->Build Projectを実行

  Description	Resource	Path	Location	Type
   make[2]: *** [D:/QNX641/ide-4.6-workspace/A_test/x86/o-g/A_test_g] Error 1	A_test		line 0	C/C++ Problem

 が出力される。
   

現在何が間違っているかが判らず、この先に進めない状況です。
お解りの人がおられればご教示願いたくお願い致します。
Re: ライブラリの読み込み  
こんにちは。

yase さんの実行された方法で問題ないはずです。
こちらでも試しに同じ方法でビルドしてみましたが、エラーにはならず、作成されたビルドも QNX Neutrino ターゲットで実行可能で
した。

ただ一点気になったのが、エラーメッセージ中の [D:/QNX641/...] となっているところで、これは QNX SDP 6.4.1 を D: ドライブに
インストールしたという事でしょうか。
もしそうなら、以前、やはり開発環境を D: ドライブにインストールして原因不明のエラーが出た事があり、それと同じ現象という可
能性があります。

ちなみに、(7) のヘッダーファイルのコピーは、ファイルをプロジェクトフォルダーにコピーしなくても、Project の Properties で
 Compiler タブの Extra include paths でライブラリプロジェクトのパスを指定すれば OK です。