Форум программистов, компьютерный форум CyberForum.ru

Линковка плюсового кода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Критические секции http://www.cyberforum.ru/cpp-beginners/thread921902.html
было так: class A { someType t; public: void f1() { модификация t; } void f2() { модификация t;
C++ Расстановка кораблей (морской бой) Доброго времени суток, при расстановке 2х палубных кораблей возникает проблема... При выборе точки уже занятой, система ломается и зацикливается. Как это можно исправить? Заранее спасибо #include <cstdlib> #include <iostream> using namespace std; bool f=true; bool z=true; int a=0, b=0, c=0, d=0; http://www.cyberforum.ru/cpp-beginners/thread921897.html
Игра Maze labirinth - не вижу начала игры C++
Добрый вечер! Вопрос скорее по вижуал студио, хотя... // 8.15 sort.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include "conio.h" #include <string>
C++ Найти номер по порядку элемента в векторе векторов
Подскажите, пожалуйста. Например, есть vector <vector<int> > k; а мне нужно найти номер по порядку элемента (a,b) в этом векторе векторов
C++ вывод гистограммы на экран http://www.cyberforum.ru/cpp-beginners/thread921870.html
Добрый день, столкнулся с такой проблемой, не получается вывести гистограмму, заранее благодарен вот мой код #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <graphics.h> int dr=DETECT, mod, err; initgraph(&dr,&mod," ");
C++ что показывает std::vector::max_size Returns the maximum number of elements that the vector can hold. но я щяс запускаю на ноутбуке с гигом оперативы for (int i=0; i<1E9; i++) myvector.push_back(i); естеественно залёт...к чему он тогда? нафиг не нужен? Добавлено через 7 минут ещё щяс меня кое-что разочаровало: #include <iostream> #include <vector> int main () { подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,135
Записей в блоге: 26
16.07.2013, 12:01     Линковка плюсового кода
Цитата Сообщение от tiger() Посмотреть сообщение
HEADERS переменная есть в готовых makefiles, я когда по аналогии делал тоже вписал, но она не пригодилась, правда, можно убрать
HEADERS в Makefile'ах упоминают для указания зависимостей. Т.е. если был модифицирован *.h файл, то надо перекомпилировать *.c файл

Цитата Сообщение от tiger() Посмотреть сообщение
Про ar - ага, понял. Кстати. А тогда может и необязательно архивировать этот один .o в .a?
Необязательно. Можно линковаться с *.o файлом напрямую

Цитата Сообщение от tiger() Посмотреть сообщение
Мне нужно слинковать в один исполняемый файл ряд .o от gcc (+ряд библиотек) вместе с ОДНИМ .o от g++. Или он так просто к сишным объектникам не прилинкуется?
В объектном файле нет никаких понятий "язык программирования". Там есть просто символьная таблица и всё. Грубо говоря, в одном файле есть метка с именем "printf", в другом есть использование метки с именем "printf" эти две точки линкер сшивает и ему плевать на язык программирования.

Проблема с файлами С++ в том, что все имена мнглируются (портятся). Связано это с тем, что в языке допустимы несколько функций с одним именем, но разным прототипом. А потому прототип также кодируется в имени. Для того и существует директива extern "C", чтобы не манглировать имена (т.е. в символьную таблицу они попадут в том же виде, как если бы вылезли из-под компилятора Си)

Цитата Сообщение от tiger() Посмотреть сообщение
Присоединил в аттач исходную либу после компиляции (libjpeg_encoder.a) и такую, которая после ranlib-а получилась (post_libjpeg_encoder.a)
Линуксовые утилиты не захотели их жрать. В теории их можно руками пересобрать, чтобы включить поддержку виндузового формата файлов, но как-то неохота с этим разбираться, как их собирать

Цитата Сообщение от tiger() Посмотреть сообщение
Как-нибудь можно руками проверить есть там индекс или нет?...
Дык линкер же русским языком пишет, что символьной таблицы нету

Цитата Сообщение от tiger() Посмотреть сообщение
Архиватор только добавляет свой заголовок "!<arch>jpeg_encoder.o/ 1373953104 0 0 100666 962812 `" и все, дальше идет скопированный ошник. mc из линукса не читает такой формат.
Взял для примера либу которая нормально работает: там в начале перечислены названия экспортируемых функций и mc нормально все читает.
mc под линуксом вовнутрь твоих *.a файлов заходит. Если запустить "ar -t libjpeg_encoder.a", то список объектников выдаётся. Т.е. сам по себе архив нормальный. Но в нём нет специального файла, который трактуется как символьная таблица

Цитата Сообщение от tiger() Посмотреть сообщение
Что-то не то с работой архиватора..
В задачу архиватора НЕ входит создавать псевдофайл с символьной таблицей. Хотя современные ar'ы это делают. Тот факт, что у тебя ни ar, ни ranlib таблицу не приклеивают, говорит о том, что у тебя binutils как-то криво собрались. Покажи, что arm-elf-ar.exe выдаёт в конце если подать опцию --help (там список поддерживаемых форматов). Вероятнее всего твой ar умеет работать только с elf'ом, в то время как объектный файл - не elf. Такой файл сгенерировал ассемблер, возможно, его можно заставить генерировать elf по опции
 
Текущее время: 21:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru