Nyt ei ole siis kyse "user includesta" eli #include "file.h"
Vaan system includesta #include
Kääntäjä: mingw-gcc 4.4.0
ympäristö: Windows XP professional
Päätin itse hieman tutkia asiaa...
Löytyi 287 sellaista hakemistoa, joissa on vähintään yksi .h -tiedosto, ja joka hakemisto on joko C:\Mingw\ tai jokin sen (suora tai epäsuora) alihakemisto.
Tein ohjelman, joka selvittää, etsitäänkö todella automaattisesti (siis ilman että gcc:lle annetaan kääntäjäoptiona hakemistoa tai hakemistoja, joista noita system includeja etsiä) kaikista em. 287 hakemistosta !
Tulos: ei etsitä.
Vain 4 ensimmäistä käännösyritystä onnistui, ja jo 5:nnen kohdalla tuli virheilmoitus: "error: my_test_include.h: No such file or directory"
Eli siis näistä neljästä hakemistosta etsitään system includeja ja tässä järjestyksessä:
C:\Mingw\include\
C:\Mingw\lib\gcc\mingw32\4.4.0\include\
C:\Mingw\lib\gcc\mingw32\4.4.0\include-fixed\
C:\Mingw\mingw32\include\
Kysymys teille lukijoille:
Pitääkö saamani tulos paikkansa, vai onko testiohjelmassani jokin virhe ?
Olin siis aiemmin laittanut kaikkiin 287:aan hakemistoon tiedoston
my_test_include.h
jonka olennaisin sisältö oli tämä:
#define test_value 1
...
#define test_value 287
(kussakin eri hakemistossa siis muuten samanlainen my_test_include.h, mutta numeroarvo kullekin yksilöllinen 1 .. 287 )
Sitten testiohjelmani ajoi gcc:n 2*287 kertaa (kukin pari: a) kääntää ja b) linkkaa DLL:ksi c- kielellä kirjoittamani DLL -kirjaston) ja kunkin kerran jälkeen lataa DLL:n LoadLibraryllä, kutsuu testifunktiota DLL:stä ja sitten FreeLibrary(Handle)
Onnistuneen käännöksen, linkityksen ja ajon jälkeen testiohjelmani poisti sen includefilen, jossa oleva arvo vastaa käännetyn DLL:n palauttamaa ja sitten silmukan seuraavaan kierrokseen - silmukka päättyy kun joko
a) kaikki 287 hakemistoa on käyty läpi
TAI
b) kääntäminen päätty virheeseen.
Tuloksena siis 4 ensimmäistä käännöstä 287 mahdollisesta menivät läpi ok, ja jo 5:nnen kohdalla includea ei siis löytynyt.
Oliko saamani tulos siis oikea vai menikö jotain odottamatonta pieleen ?
mingw-gcc system include, hakemistot, joista etsitään ... ?
mingw-gcc_selväksi
3
243
Vastaukset
- fix_forumware
Joops.... forumsofta ei hyväksy pienempi kuin ja suurempi kuin -merkkejä sellaisenaan vaan niiden välissä ollut sisältö jäi pois.
No, kokeillaanpa samaa käyttämällä ns. html entity:jä:
siis ...
Nyt ei ole siis kyse "user includesta" eli #include "file.h"
Vaan system includesta #include - vappu alkoi
Taisit siis jo alottaa vapun. Klara vappen!
- le_coder
huomaa että #include hakemisto/my_test_include.h on myös validi muoto...
sinulla voi olla kääntäjän cache käytössä... kääntäjällä on myös optiot include poluista....
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 1077763
Siekkilässä ajettu ihmisten yli- mitä tapahtui? Länsi-Savo ei ole uutisoinut asiata
Manneja, vaiko matuja?1126026- 835177
- 1394546
Alavuden sairaala
Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan113220- 592997
- 582938
Törkeää toimintaa
Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818102454- 612437
Hei........
Pelkkä sun näkeminen saa mut hymyilemään pitkin iltaa. Oot niin 🤩😘 Edellinen poistettiin.562066