From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.107.146.213 with SMTP id u204mr13454460iod.85.1507116193564; Wed, 04 Oct 2017 04:23:13 -0700 (PDT) X-Received: by 10.157.54.53 with SMTP id w50mr258510otb.2.1507116193534; Wed, 04 Oct 2017 04:23:13 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!v62no4032761itd.0!news-out.google.com!194ni6622itf.0!nntp.google.com!v62no4029514itd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 4 Oct 2017 04:23:13 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=2601:18f:900:f900:453d:87a5:de7c:1786; posting-account=AvekzAoAAABj-TclKcOWQmXwA49MFPGX NNTP-Posting-Host: 2601:18f:900:f900:453d:87a5:de7c:1786 References: <9885a3fd-8ffa-4076-ba1f-db2f8035e0dc@googlegroups.com> <977c48e8-6b5b-4b0e-84a9-cd6447a9ddc3@googlegroups.com> <15345d32-0610-444e-b611-f480bf60f9f0@googlegroups.com> <93483ae9-c1ec-4cbe-92f9-49eaf41bc1f3@googlegroups.com> <5984e47c-cfe5-4d22-9907-f113f24647b9@googlegroups.com> <2bc424a1-3559-42bb-9f40-22763c21e7f2@googlegroups.com> <27c92481-37ec-431a-8313-edc1b0b5e6ac@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: The best possible way to call a function in a shared library From: John Smith Injection-Date: Wed, 04 Oct 2017 11:23:13 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Received-Body-CRC: 1938325861 X-Received-Bytes: 4812 Xref: news.eternal-september.org comp.lang.ada:48340 Date: 2017-10-04T04:23:13-07:00 List-Id: On Wednesday, October 4, 2017 at 4:10:36 AM UTC-4, Dmitry A. Kazakov wrote: > On 04/10/2017 04:10, John Smith wrote: >=20 > >> I did what you suggested and this is the error that I'm getting now: > >> > >> gnatmake : gnatmake: could not find the main ALI file > >> At line:1 char:1 > >> + gnatmake -l../../../src .\main_static.adb -largs -L../../../bin/debu= g ... > >> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~ > >> + CategoryInfo : NotSpecified: (gnatmake: could...e main= ALI file:String) [], RemoteException > >> + FullyQualifiedErrorId : NativeCommandError > >> > >> Why do the ALI files matter? Aren't the definitions in the *.ads file= s? Are the *.o file needed as well? >=20 > It is GNAT-specific. You can think about it this way. *.ali to *.ads is= =20 > what *.o to *.adb is. But *.o can be put into a library while *.ali=20 > cannot because GNU linker does not know Ada. >=20 > > Also, I've tried this and got the following result: > >=20 > > $ gnatmake -l../../../src main_static.adb -A../../../ali/debug -largs -= L../../../bin/debug -lsimpleLibs > > gnatmake : gnatmake: missing source directory name > > At line:1 char:1 > > + gnatmake -l../../../src main_static.adb -A../../../ali/debug -largs -= ... > > + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > + CategoryInfo : NotSpecified: (gnatmake: missing source = directory name:String) [], RemoteException > > + FullyQualifiedErrorId : NativeCommandError > >=20 > > Now the complaint is about the lack of a source file... *sigh* >=20 > gnatmake -l../../../src > -aL../../../ali/debug > main_static.adb > -largs -L../../../bin/debug -lsimpleLibs >=20 > That is why project files to be used. Otherwise you must fine tune=20 > gnatmake options. That's the price to pay. >=20 > --=20 > Regards, > Dmitry A. Kazakov > http://www.dmitry-kazakov.de I see what you mean. This is the latest that I tried (what you suggested) = and the result that I received: > gnatmake -l../../../src -aL../../../ali/debug main_static.adb -largs -L..= /../../bin/debug -lsimpleLibs gnatmake : gnatmake: missing library directory name At line:1 char:1 + gnatmake -l../../../src -aL../../../ali/debug main_static.adb -largs ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (gnatmake: missing library dire= ctory name:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError One problem that I had when dealing with project files is that I'm includin= g the library's project file in the compilation process. This makes it rea= lly easy to include the library in my application. However, I'm not sure w= hat to do when I don't have the said project file.