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

Создание статической библиотеки в MinGw(code::blocks) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
10.07.2013, 01:00     Создание статической библиотеки в MinGw(code::blocks) #1
Вопросы:
1. почему создаётся main.с , а не .cpp. Хочется писать на с++
2. почему нет никаких .h файлов.как мне потом написать #include "my_static_lib.h"
ну и пока эти вопросы (начальные ) не решены, мне не помогли та туча мануалов, что есть в сети
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
10.07.2013, 01:16
  #2

Не по теме:

Цитата Сообщение от soican Посмотреть сообщение
почему создаётся main.с , а не .cpp
эмм... это просто расширения (.c/.cpp), от них ничего особо не зависит вроде. Хотя возможно CodeBlocks об этом другого мнения)

alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 01:17     Создание статической библиотеки в MinGw(code::blocks) #3
Цитата Сообщение от soican Посмотреть сообщение
2. почему нет никаких .h файлов.как мне потом написать #include "my_static_lib.h"
Созданная библиотека - файл с расширением .a. В проекте, для подключения библиотеки, в настройках компоновщика, добавляется эта библиотека.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
10.07.2013, 01:26  [ТС]     Создание статической библиотеки в MinGw(code::blocks) #4
gray_fox, посмотрите на это безобразие: 'for' loop initial declarations are only allowed in C99 mode|
C++
1
2
3
4
5
6
int SampleAddInt(int i1, int i2)
{    int l=0;
    for (int u=0;u<5;u++)
     l++;
    return l+i1 + i2;
}
это где видано, что б запрещали for использовать. я ко всему был готов....но к такому
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
10.07.2013, 01:34     Создание статической библиотеки в MinGw(code::blocks) #5
soican, это значит С-компилятором компилируете, так ему (компилятору) должно быть всё равно, какое там расширение...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 01:52     Создание статической библиотеки в MinGw(code::blocks) #6
Цитата Сообщение от soican Посмотреть сообщение
почему создаётся main.с , а не .cpp. Хочется писать на с++
Я просто расширение меняю на .cpp. Потом очистка, перестройка и вызывается с++ компилятор.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 01:59     Создание статической библиотеки в MinGw(code::blocks) #7
Работает.
Миниатюры
Создание статической библиотеки в MinGw(code::blocks)  
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
10.07.2013, 02:28  [ТС]     Создание статической библиотеки в MinGw(code::blocks) #8
так...первую проблему с main.c решили, но!!!не смотря на такие вот действия, SampleAddInt остается не видным для главного файла,куда эта библиотека подгружается
C++
1
2
3
4
5
6
int SampleAddInt(int i1, int i2) //это статическая библиотека
{    int l=0;
    for (int u=0;u<5;u++)
        l++;
    return l+i1 + i2;
}
C++
1
2
3
4
5
6
7
#include <iostream> 
using namespace std;  // это куда мы подгрузили статич. библ.
int main()
{   int v=SampleAddInt(5,6);
    cout << "Hello world!" <<endl;
    return 0;
}
Миниатюры
Создание статической библиотеки в MinGw(code::blocks)  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 02:37     Создание статической библиотеки в MinGw(code::blocks) #9
Цитата Сообщение от soican Посмотреть сообщение
SampleAddInt остается не видным для главного файла,куда эта библиотека подгружается
По аналогии... #include <iostream> для чего делается? Прототип функции должен быть виден в main(). Прототип нужен компилятору, компоновщик найдёт реализацию в подключенной библиотеке.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
10.07.2013, 02:54  [ТС]     Создание статической библиотеки в MinGw(code::blocks) #10
я думал, что никогда не разберусь) шлю лучи респекта и благодарности
объявил,
C++
1
2
3
4
5
6
7
8
#include <iostream>
int SampleAddInt(int, int);
using namespace std;
int main()
{   int v=SampleAddInt(5,6);
    cout << "Hello world!" << v <<endl;
    return 0;
}
и заработало.
Теперь выхожу на следущий уровень - понять и сделать так, чтоб я просто писал #include <моя библиотека.h>
и без всяких прототипов(я вообще конечно дерзко замахнулся,сегодня пол 5 только узнал, что есть статические библиотеки)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 03:04     Создание статической библиотеки в MinGw(code::blocks) #11
Цитата Сообщение от soican Посмотреть сообщение
Теперь выхожу на следущий уровень- понять и сделать так, чтоб я просто писал #include <моя библиотека.h>
Опять по аналогии со стандартными библиотеками... Где вы видели такое подключение библиотек? Так не получится. .h файл - это текстовый файл, содержимое которого вставляется, перед компиляцией, в месте подключения, а библиотека - это архив объектных файлов.
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
10.07.2013, 12:22  [ТС]     Создание статической библиотеки в MinGw(code::blocks) #12
я имел ввиду, как подключается boost например #include <boost/thread.hpp> и подключил в линкер C:\Boost_1_54\lib\libboost_thread.a и ещё добавил в search directories C:\Boost_1_54\include\ и C:\Boost_1_54\lib
Я хочу понять, на чем основано такое подключение, и возможно использовать такое по необходимости
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2013, 12:32     Создание статической библиотеки в MinGw(code::blocks)
Еще ссылки по теме:

Установка библиотеки png++ Windows Code::Blocks C++
C++ Где скачать code blocks с x64-м mingw?
Пытаемся подружить clang 3.6 и Code::Blocks 13.12 + MinGW под Windows 7 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 12:32     Создание статической библиотеки в MinGw(code::blocks) #13
Это другое дело. Но вы то же самое делаете в Code::Blocks. Осталось только прототипы функций, которые в библиотеке, поместить в отдельный .h файл и подключать, где нужно (например, в main()), как это делается и со стандартными библиотеками.
Yandex
Объявления
10.07.2013, 12:32     Создание статической библиотеки в MinGw(code::blocks)
Ответ Создать тему
Опции темы

Текущее время: 02:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru