LINUX.ORG.RU

Сообщения g-71

 

Как правильно отдельно собрать библиотеку libstdc++ из исходников. Ошибка: error: cannot find install-sh or

Мне необходимо собрать библиотеку libstdc++ под стендовый компьютер с архитектурой SPARC. На нём уже есть очень старая версия gcc (3.4.6). Я пробовал искать данную библиотечку find / -name «libstdc++*», но она не установлена. Мои C++ программы? собранные с помощью кросс компилятора требуют её наличия (что не удивительно):

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Я скачал tar'ы с различных зеркал, например отсюда: ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/old-releases/libstdc /

Распаковал архив и пробую установить, запуском

./configure
, но получаю следующую ошибку:
configure: error: cannot find install-sh or install.sh in . ./.. ./../..
Причём такое происходит с различными архивами. В чём тут проблема? Каким-то другим способом может устанавливается?

g-71
()

Проконсультируйте со сборкой GDB из linux для встраиваемых систем.

У меня со проблема со сборкой GBD для запуске на контроллере, на котором linux с версией ядра: 2.6.11 и, как я понял, процессор на нём i486. при запуске команды uname -a:

...... i486 unknown
я скачал исходники gdb (разные версии 7.2, 6.5) и пытаюсь собрать gdb из linux для этого контроллера. Смотрел все возможные manual'ы, например http://rus-linux.net/lib.php?name=/MyLDP/algol/gdb-remote.html Как мне правильно нужно прописать configure ? я пробовал варианты сборки с указанием: --target --host когда ставлю LDFLAGS='-static' вообще прерывается на configure и пишет что нет компилятора. Как мне нужно правильно указать все флаги? Может ли быть такое что я как-то криво собрал libncurses.so.5 ? Хотя она отвечает за ввода/вывод и gdb когда просто набираешь ./gdb нормально запускается, но когда начинаю отладку сразу segmentation fault. Причём после запуска gdb и segmentation fault на нём, все бинарники на контроллере тоже выдают segmentation fault, видимо он как-то ядро влияет - помогает только перезагрузка.

g-71
()

После запуска gdb происходит segmentation fault для всех программ на контроллере

Установил Python на контроллер (linux с ядром 2.6.11), но при импорте модулей (в запущенном python), которые требуют so файлы из python2.7/lib-dynload происходит segmentation fault. Теперь пытаюсь установить gdb чтобы под отладчиком запустить. Собрал из исходников с флагом -march=i386 gdb 7.2 скопировал файл gdb на контроллер. Пробую запустить:

http://i.imgur.com/EplfE.png и segmentation fault после этого все программы при запуске выдают segmentation fault, видимо как-то gdb влияет на ядро. Правильно ли у меня gdb работает?

Там написано: The GDB was configured as 'i686-pc-linux-gnu' а у меня контроллер i386

g-71
()

Ошибка undefined reference to `__sync_val_compare_and_swap_4' при компиляции кросс компилятором gcc 4.1.1 и 4.2.0 под Sparc

Пользуясь скриптами crosstool я собрал под Cygwin два кросс компилятора gcc-4.1.1 и 4.2.0 20061024 (prerelease) для архитектуры Sparc:

$ ./sparc-unknown-linux-gnu-gcc -v
Using built-in specs.
Target: sparc-unknown-linux-gnu
Configured with: /crosstool-0.43/build/sparc-unknown-linux-gnu/gcc-4.1.1-glibc-2.3.6/gcc-4.1.1/configure --target=sparc-unknown-linux-gnu --host=i686-host_pc-cygwin --prefix=/opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu --with-headers=/opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/sparc-unknown-linux-gnu/include --with-local-prefix=/opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/sparc-unknown-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.1.1
и
$ ./sparc-unknown-linux-gnu-gcc -v
Using built-in specs.
Target: sparc-unknown-linux-gnu
Configured with: /crosstool-0.43/build/sparc-unknown-linux-gnu/gcc-4.2-20061024-                           glibc-2.3.6/gcc-4.2-20061024/configure --target=sparc-unknown-linux-gnu --host=i                           686-host_pc-cygwin --prefix=/opt/crosstool/gcc-4.2-20061024-glibc-2.3.6/sparc-un                           known-linux-gnu --with-headers=/opt/crosstool/gcc-4.2-20061024-glibc-2.3.6/sparc                           -unknown-linux-gnu/sparc-unknown-linux-gnu/include --with-local-prefix=/opt/cros                           stool/gcc-4.2-20061024-glibc-2.3.6/sparc-unknown-linux-gnu/sparc-unknown-linux-g                           nu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atex                           it --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.2.0 20061024 (prerelease)

Мне необходимо, чтобы в программе можно было использовать функцию __sync_val_compare_and_swap, относящуюсь к Atomic-Builtins, поддержка которых, согласно http://gcc.gnu.org, включена с версии gcc 4.1.*

Я пробую скомпилировать простенький 'Hello World":

long cmpxchg( long* value, long comp_val, long new_val )
{
    return __sync_val_compare_and_swap( value, comp_val, new_val );
}

int main()
{
    return 0;
}

При компиляции выдаётся ошибка (на обоих компиляторах):

$ ./sparc-unknown-linux-gnu-gcc test_cas.c -o test_cas
/tmp/ccREXHsP.o: In function `cmpxchg':
test_cas.c:(.text+0x24): undefined reference to `__sync_val_compare_and_swap_4'
collect2: ld returned 1 exit status

В чём может быть ошибка/проблема? Может ли быть такое, что компиляторы как-то криво был собран мною (я в этом деле совсем новичок, тонкостей совсем не знаю). Может быть архитектура не поддерживает? Пробовал компилировать другие свои программы на C, нормально всё компилится и работает, т.е. вроде как компилятор нормально собран.

g-71
()

[Python] Возникает segmentation fault при импорте некоторых библиотек

У меня есть плата с процессором i386 и с устрановленным BusyBox. Я собрал для этой платы интерпретатор python, скопировал бинарник, библиотечки. Сам python запускается, всё нормально работает. Но при импорте некоторых модулей происходит segmentation fault. Например,

import sys, import os, import re
- нормально. А вот:
import pickle, import tempfile, import random
вылетает segmentation fault. В чём может быть проблема? Может вопрос и глупый и неуместный, в какую вообще сторону копать в поиске решения проблемы. Причём я пробовал собирать и python 2.7.2 и python 2.5.4

 

g-71
()

[Opensource: C++/Qt/QML] Присоединиться к opensource проекту

Задаю немного банальный и надоевший думаю всем вопрос по поводу того как присоединиться к opensource проекту. Но скажу сразу я уже немало времени потратил, чтобы найти что-то интересное для себя, где можно поучаствовать и принести какую-то пользу проекту. Меня интересует возможность присоединения к opensource проекту, в котором активно применяется C++/Qt/QML. Меня отправляли на bugs.kde.org. Смотреть тикеты, искать интересные баги и править их. В принципе дело интересное, но я пока решил оставить его для себя, если больше ничего не найду. Много мониторил проектов на github. Но мне не нравится система поиска там. Видимо я как-то плохо искал, но тоже для себя пока не нашел, хотя несомненно проекты есть, но ими в основном 1-2 человека занимаются (буду рад ошибаться и если кто-то наведёт на что-то интересно там, буду безмерно благодарен). Вообще, мне хочется проект, где работает более 5-6 человек, применяются современные подходы к разработке (багтреккер, есть roadmap, unit тесты, можно TDD и т.д.), но это не критично. И желательно, чтобы был какой-то русскоязычный человек, который поможет на первых порах что-то подсказать в целом по проекту и т.д. А так я готов к самостоятельной работе. Спасибо больше заранее за полезные ответы!

g-71
()

Ошибка, связанная с Case-sensitive при сборки кросс-компилятора используя crosstool-ng в Cygwin

Когда я пробую собрать кросс-компилятор в unix-оболочки Cygwin, запущенной под Windows с помощью скриптов crosstool-ng. вот мой скрипт .config:

возникает ошибка:

Your file system is *not* case-sensitive!
вот
$ /opt/ng-crosstool/bin/ct-ng build
[INFO ]  Performing some trivial sanity checks
[ERROR]  Your file system in '/devdir/.build' is *not* case-sensitive!
[00:02] / make: *** [build] Error 1
Как можно решить эту проблему, я нагуглил вот такое решение:
mount -o managed c:/cygwin/managed-dir /managed-dir
но оно не помогает, пишет что не знает, что такое managed

g-71
()

Статическая линковка для динамической библиотеки, возможно ли?

Извиняюсь за немного бредовый вопрос, но мне реально нужна статическая линковка для динамической библиотеки. Я думаю, большинство поймёт о чём, но я уточню

например у нас есть 3 файла: f1.cpp, f2.cpp (а так же их header'ы) и main.cpp

// f1.cpp
#include <iostream>

void f1()
{
	std::cout << "f1 function is called..." << std::endl;
}

// f2.cpp
#include <iostream>

void f2()
{
	std::cout << "f2 function is called..." << std::endl;
}
// main.cpp
#include "f1.h"
#include "f2.h"
#include <iostream>

int main( int argc, char* argv[] )
{
	f1();
	f2();
	return 0;
}

Теперь производим компиляцию и линковку этого:

$ g++ -c f1.cpp
$ g++ -c f2.cpp
$ g++ -c main.cpp
$ g++ -static main.o f1.o f2.o -o rez
В итоге файл rez получился 3.2 Mb. Всё нормально. А теперь я хочу из файлов f1.cpp и f2.cpp создать динамическую библиотеку, но тоже с ключом -static. Но у меня не получается, например, пробую так:

$ g++ -static f1.o f2.o -shared -o olol.so

Как это сделать и можно ли вообще сделать? Спасибо, извиняюсь за ламерский вопрос

g-71
()

Кросс-компиляция (gcc) из Windows под архитектуру Sparc

Кто-нибудь может посоветовать какие-то скрипты (кроме crosstoll) для сборки кросс-компилятора, позволяющего из под Windows собирать исполняемые файлы для архитектуры Sparc, можно и готовые какие-то инструменты рассмотреть.

g-71
()

Установка wxPython сборкой из исходникой, что нужно указать в prefix

В моей сборке linux папка c python находится в

/usr/lib
Я скачал: wxPython-src-2.8.8.0.tar.bz2 распаковал, потом просто делаю
 
./configure
make
make install
но при попытке после установки в python сделать:
import wx
у меня ошибка:
File "<stdin>", line 1, in 1
ImportError: No module named wx
Я давно уже не ставил ничего из исходников и не очень силён в Linux, но насколько я помню нужно при ./configure указать --prefix='путь' а вот какой путь? или как-то иначе это делается Мне необходимо именно из исходников собрать Спасибо

g-71
()

Кросс-компиляция из ubuntu 11.04 x32 под windows7 x64

Мне необходимо собрать один проект на C++ под Windows 7 x64, как сказано в README файле: Compiling under Linux:

$ ./configure
$ make

Cross-Compiling under Linux, for Windows

$ ./configure  --host=i586-pc-mingw32
$ make

я установил MinGW под ubuntu (11.04, x32):

 
sudo apt-get install mingw32

но и скомпилил всё:

 
$ CC=i586-mingw32msvc-g++ ./configure --host=i586-pc-mingw32 && make
Всё нормально собралось, но только под windows 7 не работает. Выдаёт ошибку:

А под winXP нормально работает

g-71
()

Возможен ли wxTreeCtrl с элементами wxCheckBox в wxPython ?

Необходимо создать что-то наподобие wxTreeCtrl, но не обычное дерево, а дерево с чекбоксами. Некий аналог того, что мы часто видим инсталяторах, когда можно в дереве ставить галочки. Можно выставить все галочки и т.д. Где-нибудь можно увидеть подобный пример на python для wxPython ?

g-71
()

Проблема с установкой kubuntu с флешки

Я скачал iso-образ kubuntu 11.10 c официального сайта: http://www.kubuntu.org/getkubuntu/download и пробую установить её с флешки.

Для создания загрузочной флешки kubuntu пользуюсь вот этой инструкцией InstallationFromUSBStick From Windows

Скачал вот отсюда Linux Live USB Creator

Создал с помощью неё всё нормально. Перезагружаю компьютер, выбираю в меню загрузка с флешки и всё... Просто тупо горит чёрный экран и мигает консольный курсор. Ничего не грузится. Пробовал еще раз, всё равно - ничего :(

Может ли быть какая-то проблема с самой флешкой, что с неё не будет нормально грузиться? Или я что-то делаю не так? Что можно еще сделать?

g-71
()

[Python, wxPython] Как источнику DropSource получить данные о во время события OnDropText?

У меня объект окна EditorWindow объект класса - ( производного от wx.Frame ), в нём есть таблица Grid (self.grid). В классе определён следующий метод:

def OnSubindexGridCellLeftClick( self, event ):
        ....
        dragSource = MyDropSource( self.grid )
        dragSource.SetData( data )
        dragSource.DoDragDrop()
        event.Skip()
в конструкторе EditWindow прописан бинд:
self.grid.Bind( wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnSubindexGridCellLeftClick )
в другом окне по название «VariableWindow» есть другой grid - «VariablesGrid» а так же определён следующий класс, в том числе и метод OnDropText, который как бы принимает данные из первого Grid :
class VariableDropTarget(wx.TextDropTarget):
    def __init__(self, parent):
        wx.TextDropTarget.__init__(self)
        self.ParentWindow = parent

    def OnDropText(self, x, y, data):
        x, y = self.ParentWindow.VariablesGrid.CalcUnscrolledPosition(x, y)
        ....
Объект этого класса установлен как цель в конструкторе «VariableWindow»:
self.VariablesGrid.SetDropTarget(VariableDropTarget(self))
Этот механизм работает нормально. А как я могу получить данные из «VariablesGrid» в EditorWindow (какой-нибудь метод def feedBack) в момент когда делается по нему ( «VariablesGrid») Drop. Вообще мне желательно в EditorWindow получить всю стоку с данными «VariablesGrid"которой принадлежит ячейка на которую сделали Drop. Это вообще можно реализовать?

g-71
()

Проблема со статической линковкой программы в которую нужно слинковать еще и динамическую библиотеку

У меня есть исполняемый файл (который получаю компилируя MyProg.c) и раньше я к нему статически линковал библиотеку (libMyL.so)

Вот так создаётся библиотека:

gcc -Wall -fPIC -c f1.c f2.c f3.c -Ilib
gcc -shared f1.o f2.o f3.o -o libMyL.so -lrt -lpthread
Вот так линкуется полученная библиотека к программе
gcc MyProg.c -L. -lMyL -o MyProg

Соответственно, чтобы программа запускалась на другом компе libMyL.so должен лежать например в /lib.

Всё работает. Но теперь мне нужно слинковать желательно абсолютно всё статически. Т.е. чтобы не было зависимости от библиотек и можно было бы перенести на компьютер с такой же архитектурой.

Т.е. например, если я хочу собрать исполняемый файл и запихнуть в него все библиотеки я делаю так:

Содержимое файла Hello.c

#include <stdio.h>

int main( int argc, char* argv[] )
{
	printf( "Hello world!" );
	return 0;
}

gcc -static Hello.c -o Hello

Файл Hello получается 500 Кб. Всё ок. Аналогично мне нужно и с MyProg + libMyL.so. Нужно видимо чтобы и в MyProg всё статически было собрано и в libMyL.so запихнуть все зависимости. То, что получится большой объём - ничего страшного. Как мне это реализовать?

g-71
()

[Cygwin] There critical programs are missing or too old: as ld

При сборке кросс компилятора gcc в Cygwin выдаётся ошибка:

 
configure: error:
***There critical programs are missing or too old: as ld

набираю:

 
ld --version

Выдаётся:

GNU ld (GNU Binutils) 2.21.53.20110731

ld есть и вроде версия не такая старая. В чём может быть проблема?

 

g-71
()

Где можно скачать кросс-компиляторы (gcc 3.4.3 c glib 2.3.4) для Cygwin?

Где можно скачать кросс-компиляторы (чтобы компилировать из под Cygwin для linux ), чтобы потом их установить и использовать в Cygwin ? Я нашел на sourceforge.net ссылка ниже, но там не совсем тех версий, которые мне нужно.

http://sourceforge.net/projects/metamod-p/files/Linux crosscompiler for Cygwin/

g-71
()

Кросс-компиляция из Windows под Linux. Получение бинарных файлов под Linux

Мне поставили задачу - разобраться с кросскомпиляцией C и C++ приложений из под Windows для Linux.

Я попробовал использовать Cygwin для этих целей. Установил эту оболочку, запустил её. Установил компилятор cygwin-gcc-3.3.6-glibc-2.3.2-linux (старый правда). И попробовал из него скомпилировать обычный HelloWorld и запустить его под Linux всё получилось.

Но задача стоит чтобы из нашего Windows-приложения запускать кросс-компилятор, который будет компилировать некоторые файлы. Как вообще это можно реализовать? Просто в данном случае приходится запускать Cygwin, а уже из него gcc-linux или g++-linux. Пока не вижу путей запуска из нашего приложения Windows Cygwin и далее уже в нём запуска компилятора.

Может быть какие-то есть другие выходы из ситуации? Как-то можно настроить вообще отдельный компилятор по Windows, который будет компилить бинарники под Linux?

g-71
()

Ошибка ImportError: No module named readline после установки python 2.6

На дистрибутиве Linux Mandriva стоял по умолчанию python 2.4 я установил python 2.6 из исходников, скаченных с python.org (т.е. ./configure, make, make install).

[root@mandriva2005 Python-2.6.7]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.6 /usr/local/bin/python2.6-config /usr/local/bin/python /usr/local/lib/python2.6 /usr/share/man/man1/python.1.bz2

если я пишу в терминале python, то

[root@mandriva2005 ~]# python
Python 2.4 (#2, Feb 12 2005, 00:29:46)
[GCC 3.4.3 (Mandrakelinux 10.2 3.4.3-3mdk)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

если

[root@mandriva2005 ~]# python2.6
Python 2.6.7 (r267:88850, Sep 15 2011, 12:48:23)
[GCC 3.4.3 (Mandrakelinux 10.2 3.4.3-7mdk)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/etc/pythonrc.py", line 2, in <module>
    import readline
ImportError: No module named readline

как мне избавиться от ошибки?

Traceback (most recent call last):
  File "/etc/pythonrc.py", line 2, in <module>
    import readline
ImportError: No module named readline

P.S. Mandriva 2005 потому что тестовый, старый стенд...

g-71
()

После сборки и установки wxPython в python: ImportError: No module named wx

Я установил wxPython 2.8 (OS Mandriva):

wxPython-src-2.8.0.1]# ./configure 

make

make install

ldconfig

как я понимаю, это и есть эти пакеты

rpm -qa | grep wx
wxGTK2.5-2.5.3-6mdk
libwxgtk2.5_3-2.5.3-6mdk

но когда запускаю python2.6 и делаю import wx

выходит вот это, что не может найти данный модуль:

>>> import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named wx

В чём может быть проблема? Может быть пути как-то нужно правильно прописать?

g-71
()

RSS подписка на новые темы