Рейтинг
+7.39
голосів:
8
avatar

Розробка для Linux  

GCC 4.6

Вийшла нове версія GNU Compiler Collection, 4.6.0.

Як і завжди, перелік змін займає кілька сторінок. Найцікавшими з них, мабуть, є:
  • підтримка мови Go
  • покращено підтримку C++0x
  • новий рівень оптимізації -Ofast
  • оптимізовано час лінкування
  • оптимізовано час компіляції (~10%)
  • Підтримка процесорів Intel Core i3/i5/i7
  • Підтримка процесорів AMD Bobcat

Повний перелік змін

Відео з конференції GStreamer conference 2010 Повідомлення-посилання

Відео з минулорічної конференції GStreamer conference, яка відбулася 26 жовтня у Кембріджі, Англія.

Порядок завантаження динамічних бібліотек у Linux

Бувають іноді такі ситуації, коли треба запустити програму так, щоб вона підхопила якусь специфічну версію динамічних бібліотек замість тих, що стандартно встановлені у системі.

Уявіть, наприклад, що ви тестер і маєте перевірити роботу програми з усіма можливими версіями Qt від 4.4.3 аж до 4.7. Або вам просто хочеться у новенькій убунті вести розробку під якусь стародавню систему, у якій нічого більшого ніж 4.4.3 немає. У цьому пості я спробую зібрати докупи усю інформацію, яка знадобиться для вирішення таких ситуацій.

Коли бінарному файлу потрібно буде завантажити динамічну бібліотеку, то її шукатимуть у наступних місцях:

1) За значенням RPATH бібліотеки, у якій було знайдено залежність (якщо ця залежність у бібліотеці)
2) За значенням RPATH виконуваного файлу
3) у директоріях, перелічених у змінній оточення LD_LIBRARY_PATH
4) За значенням RUNPATH виконуваного файлу.
5) /etc/ld.so.cache — кеш бібліотек, сформований ldconfig
6) у стандартних директоріях, призначених для зберігання бібліотек (/lib та /usr/lib)



( Читати далі )

Що нового в GCC 4.5? Повідомлення-посилання

GCC 4.5 обіцяє зробити програми швидшими завдяки новій оптимізації, яка виконується під час лінкування (link-time optimization), полегшити написання розширень для компілятора, завдяки новій, і поки що досить спірній архітектурі плагінів, дотримуватись суворих стандартів для обчислень із плаваючою крапкою, і покращити якість відлагоджувальної інформації при використанні оптимізації.

Написання демона

Демон (англ. daemon) — в багатозадачних операційних системах, таких, як UNIX — програма, яка працює у фоновому режимі без прямого спілкування з користувачем.

Демони зазвичай запускаються під час завантаження системи, і виконуються від імені користувача root, або ж окремого користувача, створеного спеціально для даного демона (наприклад, apache). Типові завдання демонів: сервери мережевих протоколів (HTTP, FTP, електронна пошта та інші), управління устаткуванням, підтримка черг друку, управління виконанням за розкладом і подібні завдання. Назви таких програм, зазвичай, закінчуються на «d» для підкреслення того що ця програма є демоном, наприклад: sshd, syslogd, httpd та інші.


( Читати далі )
  • +6
  • 15 квітня 2010, 00:44
  • sashko
  • 15

Програмування Xlib на C++ Повідомлення-посилання

Xlib — це бібліотека, яка дозволяє вам малювати графіку на екрані будь якаого Х-сервера, локального чи віддаленого, використовуючи мову С/С++. Усе, що вам для цього необхідно — це підключити до програми бібліотеку <X11/Xlib.h>, злінкувати її використавши опцію -lX11, і тепер ви готові використовувати будь яку функцію бібліотеки.

Демонстрація найпростішої "Hello, world!" на С Повідомлення-посилання

Дуже цікаві експерименти зі звичайнісінькою програмою "Hello, world" на С. Так, виявилось, що GCC додає (http://blog.ksplice.com/2010/03/libc-free-world/) до коду libc, навіть якщо його про це не просити. У цій статті пояснюється, як зібрати "Hello, world!" взагалі не використовуючи бібліотек. Цікаве чтиво більш, як 10-літньої давності...

Путівник по джунглям звукових АРІ в Linux

Під час міні-конференції, присв'яченій темі аудіо, що відбулась під час конференції Linux Plumbers вияснилась одна річ: програмістам часто буває складно вирішити, які саме зі звукових АРІ і для яких саме цілей слід використовувати при створенні аудіо-програм для Linux. Давайте спробуємо розібратись у цих джунглях:


( Читати далі )
  • +5
  • 28 серпня 2009, 19:30
  • sashko
  • 2

Valgrind. Профілювання програмного забезпечення

Профілювання програм може здійснюватися за допомогою двох модулів — callgrind та cachegrind. Кожен з них збирає різну інформацію. При цьому не можна покладатися на результати роботи лише одного з модулів, краще проводити пошук «вузьких» місць у програмах на основі аналізу виводу кожного з модулів.


( Читати далі )
  • +3
  • 14 серпня 2009, 14:43
  • sashko
  • 2

Вступ до використання Valgrind. Пошук витоків пам'яті

Valgrind — потужний набір знадобів для зневадження роботи з оперативною пам'яттю, пошуку витоків пам'яті та профілювання.

Містить наступні модулі:
• memcheck: основний модуль, застосовується для пошуку витоків пам'яті та інших помилок пов'язаних з неправильною роботою з областями пам'яті — читанням і записом за межі виділених областей і т.д.
• cachegrind: аналізує виконання коду, збираючи дані про (не)потрапляннях до кешу і точках переходу (коли процесор не правильно передбачує розгалуження).
• callgrind: аналізує виклики функцій, використовуючи приблизно ту ж методику, що й модуль cachegrind. Дозволяє побудувати дерево викликів функцій, і відповідно, проаналізувати вузькі місця у роботі програми.
• massif: аналізує виділення пам'яті різними частинами програми
• helgrind: аналізує виконавчий код на наявність різноманітних помилок синхронізації при використанні багатопотокового коду, використовуючи POSIX Threads.

Найчастіши використовується для пошуку витоків пам'яті. Для цього призначений модуль memcheck, який уміє шукати:
• touching memory you shouldn’t (eg. overrunning heap block boundaries);
• використання змінних до їхньої ініціалізації;
• некоректне звільнення пам'яті;
• витоки пам'яті.



( Читати далі )
  • +2
  • 13 серпня 2009, 18:34
  • sashko
  • 19