Страница 1 из 1

Сборка библиотеки (android NDK)

Добавлено: 28 май 2013, 22:30
MikeIV
Не компилируется библиотека. Компилятор ругается на static std::wostream Str;. Пробовал std::ostream Str и всё равно тоже самое. Надеюсь на вашу помощь.

Компилирую под Linux (ubuntu)

main.cpp

Код: Выделить всё

#include <stdio.h>
#include <math.h>
#include <vector>
#include <iostream>

int main ()
{
	int A = 0;
	int B = 9;
	std::vector <int> C;


	static std::wostream Str;

	A = sqrt(9.0);

	for (int i = 0; i<10; i++) {
		C.push_back(i);
	}

	Str << "Текст\n";


	return 0;
}
Application.mk

Код: Выделить всё

APP_ABI := armeabi-v7a
APP_STL := stlport_static
STLPORT_FORCE_REBUILD := true
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
Android.mk

Код: Выделить всё

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE	:= main
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS	:= -llog

include $(BUILD_SHARED_LIBRARY)
p.s. Я только недавно начал изучать и писать под андройд... Так что сильно не бить за тупые вопросы :lol:

Re: Сборка библиотеки (android NDK)

Добавлено: 29 май 2013, 09:17
klblk
Может быть проблема в NDK.
Попробуй: http://www.crystax.net/ru/android/ndk

Re: Сборка библиотеки (android NDK)

Добавлено: 29 май 2013, 19:40
MikeIV
тоже самое ((

Re: Сборка библиотеки (android NDK)

Добавлено: 30 май 2013, 06:30
klblk
static std::wostream Str; - в этой строчки определенно проблема... в чём конкретно сказать не могу, так как знаю только основы с++. Стандартный gcc у меня его тоже не скомпилировал и выдал туже ошибку.

Собственно вот такая строчка компилируется без проблем:
std::wcout << "Текст\n";

http://svn.apache.org/repos/asf/stdcxx/ ... stream.cpp
тут есть пример использования:
std::wostream out (in.rdbuf ());

тобишь конструктор кушает некий in.rdbuf (). Что это такое я не знаю.
Надеюсь хоть чем-то в итоге помог)

Re: Сборка библиотеки (android NDK)

Добавлено: 30 май 2013, 22:50
MikeIV
klblk, большое спасибо за наводку! Сделал так:

Код: Выделить всё

#include <math.h>
#include <vector>
#include <iostream>
#include <sstream>

int main ()
{
	int A = 0;
	int B = 9;
	std::vector <int> C;

	static std::wistringstream in (std::wios::in | std::wios::out);

	std::wostream Str(in.rdbuf ());

	A = sqrt(9.0);

	for (int i = 0; i<10; i++) {
		C.push_back(i);
	}

	Str << "Текст\n";


	return 0;
}