Back to Four Js Website
Four Js Customer Forum
Subscribe for automatic updates:
RSS
Sign in for full access
|
Help
Four Js Development Tools Forum
>
Discussions by product
>
Genero BDL
>
link a program with 42x
Most recent posts
Pages: [
1
]
« previous
next »
Reply
|
Print
Author
Topic: link a program with 42x (Read 8491 times)
Daniele A.
Posts: 28
link a program with 42x
«
on:
November 14, 2011, 09:45:26 am »
hi,
when i try to compile a 42r (fglrun -l -o ...)
with library 42x and 42m the entire module 42x is escluded
but if i remove a specific module 42m (and only with that)
from the link command then the library is correcty "included"
in the 42r.
the functions in the 42m file and in then modules inside the 42x
are different ....
the 42m contains the "main"
Red Hat Enterprise Linux ES release 4 (Nahant Update 4) 64 bit
fglrun 2.21.10 build-1539.38
Built Oct 25 2010 19:06:18
any suggestion ?
thanks
Daniele Artini
Reuben B.
Posts: 1126
Re: link a program with 42x
«
Reply #1 on:
November 18, 2011, 12:35:30 am »
I hate to say it, but it sounds like a support issue.
The linker will optimise and not include in the .42r, any module that is not referenced. (you'll come across that if you use the INITIALIZER attribute and don't have a reference to that function anywhere else in your code).
First thing is to check your function names for uniqueness which it sounds like you have done. (This is where the PRIVATE FUNCTION that was introduced in 2.21 comes in handy)
I'd also check that the module that is the "specific module that you remove from the link command" is not also defined as being part of the .42x. (ie is included in both the fgllink that produces the .42x and the .42r)
Also you may get a clue by attempting to debug your program. The debugger will relink the program without optimisation and may uncover something.
Hope that helps,
Reuben
Product Consultant (Asia Pacific)
Developer Relations Manager (Worldwide)
Author of
https://4js.com/ask-reuben
Contributor to
https://github.com/FourjsGenero
Daniele A.
Posts: 28
Re: link a program with 42x
«
Reply #2 on:
November 18, 2011, 08:43:01 am »
i have already done all your suggestion, than i will contact my support
thanks
Rene S.
Posts: 112
Re: link a program with 42x
«
Reply #3 on:
November 18, 2011, 09:37:43 am »
Hello,
the linker (fglrun -l) works in two modes.
1) linking a library. None of the modules contains MAIN. A target name (-o name) must be specified on the command line.
2) linking a program. One of the modules contains MAIN. The target name is optional. The linker uses the same name as the module containing MAIN and uses the file extension 42x.
When linking a library: none of the modules will be excluded. Symbols might be unresolved.
When linking a program: only used modules will be referenced. All Symbols must be resolved.
Please notice: the target file (the program or the library) is only a dictionary. This dictionary contains the symbols (function names) and the name of the module where the function has been defined.
Rene
Pages: [
1
]
Reply
|
Print
« previous
next »
Jump to:
Please select a destination:
-----------------------------
General
-----------------------------
=> General Discussion
=> Ask Reuben
=> WWDC21
-----------------------------
Discussions by product
-----------------------------
=> Products announcements
=> Genero BDL
=> GWS
=> GAS and GBC
=> GDC
=> Genero Mobile for Android or iOS
=> Genero Studio
=> Reporting tools (GRW, GRE)
-----------------------------
Jobs
-----------------------------
=> Jobs
Powered by SMF 1.1.21
|
SMF © 2015, Simple Machines
Loading...