Problem z dodaniem dużego pliku do projektu

0

Witam.

Ostatnio zacząłem pisać aplikację i muszę dodać plik który ma 2218449 lini do projektu który piszę w wxDev-C++. Problem polega na tym że jak chcę dodać ten plik to kompilator się zawiesza nie chcę mi go dodać. Może znacie jakieś sposoby na dodanie tego pliku do projektu lub rozwiązanie problemu ?

Dziękuje za każdą odpowiedź i życzę miłego dnia.

1

Prawie 2,5 miliona linii kodu w jednym pliku? Nieźle :D

Sam to pisałeś, czy ktoś inny odpowiada za to cudo?

Chyba jedyna sensowna (aczkolwiek niezbyt prosta) porada to ostry refactor.

0

Co to za plik? Nie możesz załadować go dynamicznie? Wygląda mi to na mocny problem XY

0

Znaczy to jest plik z bibloteki sqlite.

3

Cała biblioteka SQLite ma ok 125kLOC, jakim cudem masz jeden jej plik który jest 20x większy?

0

Można prosić o linka do pobrania plików Sqlite. Bo już nie wiem to znalazłem i w code::blocks się dodało a w wxDev-C++ się zawiesza i piszę brak odpowiedzi. Jeśli ktoś by umiał wytłumaczyć jak prawidłowo to wszystko zrobić ?

2

To wymyślili.

This file is an amalgamation of many separate C source files from SQLite version 3.29.0. By combining all the individual C code files into this single large file, the entire code can be compiled as a single translation unit. This allows many compilers to do optimizations that would not be possible if the files were compiled separately. Performance improvements of 5% or more are commonly seen when SQLite is compiled as a single translation unit.
This file is all you need to compile SQLite. To use SQLite in other programs, you need this file and the "sqlite3.h" header file that defines the programming interface to the SQLite library. (If you do not have the "sqlite3.h" header file at hand, you will find a copy embedded within the text of this file. Search for "Begin file sqlite3.h" to find the start of the embedded sqlite3.h header file.) Additional code files may be needed if you want a wrapper to interface SQLite with your choice of programming language. The code for the "sqlite3" command-line shell is also in a separate file. This file contains only code for the core SQLite library.

@pestka12 Możesz pobrać Precompiled Binaries lub skompilować źródła jako bibliotekę (przeczytaj plik README i INSTALL) i dodawać jedynie wynik (.lib, .obj, .a lub .so) oraz header (.h).
Link

0

Bardzo dziękuje za wytłumaczenie ale ja już pobrałem plik zip z Precompiled Binaries for Windows i tam jest tylko DLL i Def.

0
pestka12 napisał(a):

Problem polega na tym że jak chcę dodać ten plik to kompilator się zawiesza nie chcę mi go dodać

Czy ty przypadkiem nie mylisz kompilatora (MinGW) z z IDE (Dev-C++)?
Może IDE się wiesza jak dodajesz plik do projektu i próbuje go wyświetlić (wczytać całość).

Poza tym jak coś ma 2M linii to raczej, kompilator będzie długo to trawił.
Prawdopodobnie tak duży plik spowoduje też dużą konsumpcję RAM-u.W efekcie kompilator może dodatkowo zwolnić bo system będzie przerzucał cześć danych do swap file.

1 użytkowników online, w tym zalogowanych: 0, gości: 1