Dear Dave,

c::*ecl-include-directory* tells ECL where to find ECL's own header files. Likewise, c::*ecl-library-directory* is the location of the libecl.so.

For including your own header files, please use c:*user-cc-flags*, for example as

(setf c:*user-cc-flags* "-DWXUSINGDLL -IC:/Dave/wx/include -IC:/Dave/wx/include/msvc")

Additional linker flags and additional libraries to link in can be specified in c:*user-linker-flags* and c:*user-linker-libs* respectively, e.g.

(setf c:*user-linker-flags* "-LC:/Dave/wx/lib/vc_x64_dll"
      c:*user-linker-libs* "-lsome_shared_library")

Note that if you are running an ECL release older than 23.9.9, both types of linker flags belong in c:*user-ld-flags*, although that variable is now deprecated because it can lead to linker flags being put in the wrong position in the linker command line.

Best regards,

Marius Gerbershagen

Am 02.04.24 um 19:12 schrieb d...@synergy.org:
I am trying to add directories for #include directives and for linking
libraries. The below text is my make.lisp file for building my code:

(require 'cmp)
(setf c:*user-cc-flags* "-DWXUSINGDLL")
(setf c::*ecl-include-directory*
"C:/Dave/wx/include,C:/Dave/wx/include/msvc")
(setf c::*ecl-library-directory* "C:/Dave/wx/lib/vc_x64_dll")
(compile-file "wx.lisp" :system-p t)
(c:build-fasl "wx"
              :lisp-files '("wx.obj"))

Although

(setf c:*user-cc-flags* "-DWXUSINGDLL")

Is working as evidenced by the argument list to run-program, there is no
evidence that the include or library directories are being used at all.
Moreover, the #include directive in the wx.lisp code cannot find the
specified header file.

How are c::*ecl-include-directory* and c::*ecl-library-directory* intended
to be used?

        Dave





Reply via email to