Я использую SQLite 3 для управления базами данных в моем микропроцессоре на базе ARM9.
Я хочу кросс-компилировать последнюю версию SQLite 3 для моего проекта в Linux (Ubuntu 10.04). Я использую arm-none-linux-gnueabi-gcc compiler
для разработки.
Я попытался выполнить кросс-компиляцию, используя следующие команды:
Скачал sqlite-amalgamation-3.7.0.tar
Я извлек его и затем написал следующую команду на терминале,
sudo ./configure --exec-prefix=/media/8CCC8E9BCC8E7F68/SQLIte3/sqliteinstall/ --host=arm --target=arm CC=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-gcc AR=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-ar STRIP=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-strip RANLIB=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-ranlib CFLAGS="-Os"
Он успешно кросс-компилировал SQLite ,
Затем команда
sudo make
.
Это успешно работает. Теперь make install
командуй.
Это не дало мне ошибки, но когда я зашел в файл config.log, я обнаружил, что есть несколько предложений, приведенных ниже:
1.conftest.c:17:7: error: size of array 'off_t_is_large' is negative
2.conftest.c:12:28: fatal error: ac_nonexistent.h: No such file or directory
compilation terminated.
3.conftest.cpp:23:28: error: ac_nonexistent.h: No such file or directory
4.conftest.c:67:13: error: invalid type argument of unary '*' (have 'int')
Я сомневаюсь, что он был скомпилирован правильно или нет , Я не могу понять.
Я вставил библиотеку на свою плату, она работает нормально, но проблема в том, что скорость стала очень медленной. Я думаю, что есть некоторая проблема в том, что я не установил никаких флагов для компилятора GCC.
Я не смог найти никаких опций. Как я могу установить определенные флаги для компилятора GCC, чтобы лишние функции можно было опустить.
Это сработало для меня (и работает для кросс-компиляции большинства других сторонних программ):
$ export PATH=$PATH:<path to directory containing your cross-compiler binaries>
$ cd <path to the directory containing the thirdparty code>
$ ./configure --prefix="<installation path>" --host=arm-unknown-linux-gnueabi
Добавьте ваши CFLAGS и другие параметры конфигурации в параметры конфигурации. Например,
$ ./configure --prefix="<installation path>" --host=arm-unknown-linux-gnueabi -CFLAGS="-Os" --enable-threadsafe
Если в вашем случае целевая система определена как arm-none-linux-gnueabi, замените хост в приведенном выше примере:
$ ./configure --prefix="<installation path>" --host=arm-none-linux-gnueabi -CFLAGS="-Os" --enable-threadsafe
Пути к GCC , CC, AR, ... будут найдены на указанном вами хосте.