Languages

Menu
Sites
Language
NativeApplication 개발하고싶은데 c++로 할수 없나요?

안녕하세요.

 

Tizen 2.1, 2.2부터 Tizen에 관심있던 초보 개발자입니다.

 

이번에 2.3으로 개발중에 2가지 막힌 부분이 있어 여기에 조언을 구하고자 합니다. (OSP 실컷 익혀놨는데 다 EFL로 바뀌어 처음에 엄청난 멘붕이 오더군요ㅜㅜ)

 

IDE를통해 Tizen Native App Project를 생성하면 c로 구현된 efl project가 하나 생성됩니다.

 

제가 기존에 c++로 작업하던 모듈을 app에서 사용하고싶은데, c++ build가 되지 않습니다.

 

(심지어 그냥 class 하나만 생성해서 빌드하려고해도 unknown type name 'class' 이런 식의 에러가 발생하더군요..

 

혹시 c++ 개발을위해서는 IDE에서 다른 설정을 해주어야하나요?

 

 

두번째로는..

 

외부에서 만든 shared library(.so)나 static library(.a)를 제가 생성한 Project에서 사용하고 싶은데, 링크를 걸어줘도 라이브러리 파일을 찾지못하고 있습니다.

 

다른 글 보니까 Proejct Reference를 통해 연결시키라는거 같은데.. 제가 진행중인것은 서로 다른 개발환경(개발자 둘이서 다른 PC에서 작업한다고 생각하면 되겠네요.)에서

 

한명은 어플을, 한명은 라이브러리를 개발하는데, 라이브러리 개발자가 앱 개발자에게 .a 파일과 필요한 .h파일을 건네준다고 가정할때,

 

이 때는 Project Reference를 할 수 없는데 이 때는 어떻게 라이브러리를 링크해야하나요?

 

Project Properties - C/C++ Build - Setting 에서 library를 추가해주고 빌드했음에도 불구하고 Cannot find 에러가 발생합니다..

 

이 두가지가 해결되었으면 좋겠는데, 답변 부탁드릴게요.

 

사실 별거 아닐거같은 예상이 되는데 제가 IDE 환경을 아직 다 습득하지 못한 문제라 생각합니다..

 

Responses

4 Replies
Alex Dem

Hi,
Regarding C++ you don't need to add any additional parameters in Tizen IDE. Just rename your *.c files to *.cpp and it will be compiled with C++ compiler automatically.
But your should implement your cpp file strictly on the  С++.
Alexey.

Alex Dem

Also,
Regarding shared libraries: you need build you library at first : IDE->File->New->Tizen Native project->Template->Library->Shared library with x86 or arm configuration, to select architecture : right click on project -> Properties -> C/C++ Build -> Tizen Settings -> Architecture.
After this just add your library (*.so file) into youprojectDir/lib folder and build project (with x86 or arm configuration)
Use Eina_Module api to load your library dinamically from code, something like this:

Eina_Module* module= eina_module_new  ("/opt/usr/apps/org.tizen.yourApp/lib/libsharedlib.so") ;
eina_module_load(module);
bool (*myfunc)(void);
myfunc=  eina_module_symbol_get  ( module, "tizensharedlib" );
(*myfunc)();
eina_module_unload(module);

Alexey.

Cheon-Hee Park

Alex is, thank you answers.
How do I use StaticLibrary through the IDE?

For example ...

[staticlib.h]
int FuncSum (int a, int b);

[staticlib.cpp]
int FuncSum (int a, int b)
{
     return a + b;
}

After the build up to the source libstaticlib.a, I would like to use from the App Project.

include <staticlib.h>
......
{
     .....
     int result = FuncSum (10,20);
}

I want to use this way, will continue to function FuncSum, undefined reference to 'FuncSum' of such an error occurred.

[Project Properties] - [C / C ++ Build] - [Settings] after entering the tab, C ++ Linker Libraries not in spite of, despite adding staticlib.

Please advise. Thank you.

Vikram

try to include the libstaticlib.a under C++ Linker > Miscellaneous > Other objects.

It's works on my local environment, but I am used a C function.