×
Namespaces

Variants
Actions

Технологии Open C/C++

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Совместимость
Платформа(ы):
Symbian

Статья
Автор: Den123 (05 Jan 2009)
Последнее редактирование: hamishwillee (08 May 2013)

Технологии Open C/C++

Технологии Open C и Open C++ позволяют разработчикам, владеющим навыками разработки на стандартных С/С++, создавать ПО для платформы S60.

Open C реализует ряд функций из девяти стандартных библиотек POSIX: libc, libdl, libpthread, libm, libz, libcrypt, libcrypto, libglib и libssl. Данная технология является стандартным компонентом платформы начиная с S60 3-го издания, FP2.

Open C++ реализует набор стандартных API языка С++, таких как потоки IOStreams, базовые компоненты библиотек STL и Boost. Данная технология является стандартным компонентом платформы начиная с S60 5-го издания.

Для разработки приложений с использованием Open C/C++ под S60 3-го издания (а также 3-го издания FP1) необходимо:

  • установить плагин для SDK
  • установить в используемые смартфоны (либо включить в состав дистрибутива) следующие пакеты:
    • %EPOCROOT%\nokia_plugin\openc\s60opencsis\pips_nokia_1_3_SS.sis
    • %EPOCROOT%\nokia_plugin\openc\s60opencsis\glib.SIS
    • %EPOCROOT%\nokia_plugin\openc\s60opencsis\ssl.SIS
    • %EPOCROOT%\nokia_plugin\openc\s60opencsis\stdioserver_s60_1_3_SS.SIS (опционально, используется для отладки)
    • %EPOCROOT%\nokia_plugin\opencpp\s60opencppsis\stdcpp.SIS


IDE Carbide.c++ содержит готовый шаблон для создания приложений на Open C/C++, который подключает нужные библиотеки, содержит необходимые параметры компиляции и т.д.

Простейшее приложение на Open C может выглядеть следующим образом:

#include <stdio.h>
 
// This is a GCCE toolchain workaround needed when compiling with GCCE
// and using main() entry point
#ifdef __GCCE__
#include <staticlibinit_gcce.h>
#endif
 
int main(void)
{
printf("Hello Open C!\n");
printf("Press a character to exit!");
int c = getchar();
return 0;
}


На Open C++:

#include <iostream>
#include <cstring>
 
// This is a GCCE toolchain workaround needed when compiling with GCCE
// and using main() entry point
#ifdef __GCCE__
#include <staticlibinit_gcce.h>
#endif
 
using namespace std;
 
class myclass {
public:
void show(){cout<<"Hello World\n"; }
} ;
 
int main()
{
myclass obj;
obj.show();
cout<<"Press a character to exit!";
int c = getchar();
return 0;
}
This page was last modified on 8 May 2013, at 03:04.
83 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×