Missing Header File for isl_schedule_node* in ISL Library Integration

46 views
Skip to first unread message

Ranganhar Guo

unread,
Mar 14, 2025, 10:34:23 AMMar 14
to isl Development
Hi!
I am using the ISL library in an external project, where the dynamic library is located at /usr/local/lib/isllib.so. This library was installed using make install after building the ISL project, but when I attempt to use isl_schedule_node*, I cannot find the appropriate header file. What should I do?

Thanks,
--ranganhar

Sven Verdoolaege

unread,
Mar 14, 2025, 1:46:14 PMMar 14
to Ranganhar Guo, isl Development
You should use isl/schedule_node.h and it should be in /usr/local/include.
If not, send you config.status and the output of "make install".

skimo

Ranganhar Guo

unread,
Mar 14, 2025, 2:06:13 PMMar 14
to isl Development

I have included isl/schedule_node.h and tried to use isl_schedule_band*.It doesn't work. 
Error info is like picture1.error.jpg
ranganahr
install.log
config.log
config.status

Sven Verdoolaege

unread,
Mar 14, 2025, 2:12:10 PMMar 14
to Ranganhar Guo, isl Development
On Fri, Mar 14, 2025 at 11:06:13AM -0700, Ranganhar Guo wrote:
>
> I have included isl/schedule_node.h and tried to use isl_schedule_band*.It
> doesn't work.
> Error info is like picture1.[image: error.jpg]

Please show as text so that I can easily see and comment on it.

skimo

Ranganhar Guo

unread,
Mar 14, 2025, 2:17:46 PMMar 14
to isl Development
sorry!
I writed a program for test.
-------------------------------------------------------------------------------------------------------------------------------------------------example----------------------------------------------------------
#include <isl/schedule_node.h>

int main()
{
    isl_schedule_band* test;
    return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


and compile it with g++.It threw an error:
213.cpp: In function ‘int main()’:
213.cpp:5:5: error: ‘isl_schedule_band’ was not declared in this scope; did you mean ‘isl_schedule_node’?
    5 |     isl_schedule_band* test;
      |     ^~~~~~~~~~~~~~~~~
      |     isl_schedule_node
213.cpp:5:24: error: ‘test’ was not declared in this scope
    5 |     isl_schedule_band* test;
      |                        ^~~~



The output of 'make install' is :
---------------------------------------------------------------------------------------install info --------------------------------------------------------------------------------------------------------------------
make  install-recursive
make[1]: Entering directory '/home/ranganhar/file/isl'
Making install in .
make[2]: Entering directory '/home/ranganhar/file/isl'
make[3]: Entering directory '/home/ranganhar/file/isl'
 /usr/bin/mkdir -p '/usr/local/lib'
 /bin/bash ./libtool   --mode=install /usr/bin/install -c   libisl.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libisl.so.23.4.0 /usr/local/lib/libisl.so.23.4.0
libtool: install: (cd /usr/local/lib && { ln -s -f libisl.so.23.4.0 libisl.so.23 || { rm -f libisl.so.23 && ln -s libisl.so.23.4.0 libisl.so.23; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libisl.so.23.4.0 libisl.so || { rm -f libisl.so && ln -s libisl.so.23.4.0 libisl.so; }; })
libtool: install: /usr/bin/install -c .libs/libisl.lai /usr/local/lib/libisl.la
libtool: install: /usr/bin/install -c .libs/libisl.a /usr/local/lib/libisl.a
libtool: install: chmod 644 /usr/local/lib/libisl.a
libtool: install: ranlib /usr/local/lib/libisl.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 ./libisl-gdb.py /usr/local/lib/libisl.so.23.4.0-gdb.py
 /usr/bin/mkdir -p '/usr/local/include/isl'
 /usr/bin/install -c -m 644 include/isl/stdint.h '/usr/local/include/isl'
 /usr/bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 isl.pc '/usr/local/lib/pkgconfig'
 /usr/bin/mkdir -p '/usr/local/include/isl'
 /usr/bin/install -c -m 644 ./include/isl/cpp.h ./include/isl/typed_cpp.h include/isl/val_gmp.h include/isl/aff.h include/isl/aff_type.h include/isl/arg.h include/isl/ast.h include/isl/ast_type.h include/isl/ast_build.h include/isl/constraint.h include/isl/ctx.h include/isl/fixed_box.h include/isl/flow.h include/isl/id.h include/isl/id_type.h include/isl/id_to_ast_expr.h include/isl/id_to_id.h include/isl/id_to_pw_aff.h include/isl/ilp.h include/isl/hash.h include/isl/hmap.h include/isl/hmap_templ.c include/isl/list.h include/isl/local_space.h include/isl/lp.h include/isl/mat.h include/isl/map.h include/isl/map_to_basic_set.h include/isl/map_type.h include/isl/maybe.h include/isl/maybe_ast_expr.h include/isl/maybe_basic_set.h include/isl/maybe_id.h include/isl/maybe_pw_aff.h include/isl/maybe_templ.h include/isl/multi.h include/isl/obj.h include/isl/options.h include/isl/point.h include/isl/polynomial.h '/usr/local/include/isl'
 /usr/bin/install -c -m 644 include/isl/polynomial_type.h include/isl/printer.h include/isl/printer_type.h include/isl/schedule.h include/isl/schedule_node.h include/isl/schedule_type.h include/isl/set.h include/isl/set_type.h include/isl/space.h include/isl/space_type.h include/isl/stream.h include/isl/stride_info.h include/isl/union_map.h include/isl/union_map_type.h include/isl/union_set.h include/isl/union_set_type.h include/isl/val.h include/isl/val_type.h include/isl/vec.h include/isl/version.h include/isl/vertices.h '/usr/local/include/isl'
make[3]: Leaving directory '/home/ranganhar/file/isl'
make[2]: Leaving directory '/home/ranganhar/file/isl'
Making install in doc
make[2]: Entering directory '/home/ranganhar/file/isl/doc'
make[3]: Entering directory '/home/ranganhar/file/isl/doc'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/home/ranganhar/file/isl/doc'
make[2]: Leaving directory '/home/ranganhar/file/isl/doc'
make[1]: Leaving directory '/home/ranganhar/file/isl'
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ranganhar

Sven Verdoolaege

unread,
Mar 14, 2025, 2:47:56 PMMar 14
to Ranganhar Guo, isl Development
On Fri, Mar 14, 2025 at 11:17:46AM -0700, Ranganhar Guo wrote:
> sorry!
> I writed a program for test.
> -------------------------------------------------------------------------------------------------------------------------------------------------example----------------------------------------------------------
> #include <isl/schedule_node.h>
>
> int main()
> {
> isl_schedule_band* test;

You said you were trying to use isl_schedule_node,
but you are trying to use isl_schedule_band instead.

> and compile it with g++.It threw an error:
> 213.cpp: In function ‘int main()’:
> 213.cpp:5:5: error: ‘isl_schedule_band’ was not declared in this scope; did
> you mean ‘isl_schedule_node’?
> 5 | isl_schedule_band* test;
> | ^~~~~~~~~~~~~~~~~
> | isl_schedule_node

The error message says it all.

skimo

Ranganhar Guo

unread,
Mar 14, 2025, 2:51:00 PMMar 14
to isl Development
oh sorry, i want to use isl_schedule_band*... what a stupid mistake.
ranganhar

Ranganhar Guo

unread,
Mar 15, 2025, 1:54:11 AMMar 15
to isl Development
Thanks for your patient answer! I have solved the problem by modifying makefile.am!
ranganhar

Sven Verdoolaege

unread,
Mar 15, 2025, 5:41:06 AMMar 15
to Ranganhar Guo, isl Development
On Fri, Mar 14, 2025 at 11:50:59AM -0700, Ranganhar Guo wrote:
> oh sorry, i want to use isl_schedule_band*... what a stupid mistake.

Just to be clear, those are internal data structures and functions
that should not be used externally.

skimo

Ranganhar Guo

unread,
Mar 15, 2025, 5:50:38 AMMar 15
to isl Development
Yeah, Thank you! I got it.  Initially I want to extract from isl_union_map and transform it to isl_schedule using mupa and isl_schedule_band. However now, I use mupa and isl_schedule_node to achieve the goal.
Is it the correct and efficient way?

ranganhar

Sven Verdoolaege

unread,
Mar 15, 2025, 7:06:21 AMMar 15
to Ranganhar Guo, isl Development
On Sat, Mar 15, 2025 at 02:50:37AM -0700, Ranganhar Guo wrote:
> Yeah, Thank you! I got it. Initially I want to extract from isl_union_map
> and transform it to isl_schedule using mupa and isl_schedule_band. However
> now, I use mupa and isl_schedule_node to achieve the goal.
> Is it the correct and efficient way?

As long as you are using functions documented in the manual
you should be fine.

skimo
Reply all
Reply to author
Forward
0 new messages