I built it on Sierra. What’s the missing symbol?
Mark Brethen [email protected] > On Sep 23, 2018, at 8:16 PM, Ryan Schmidt <[email protected]> wrote: > > It doesn't build for me... > > > Undefined symbols for architecture x86_64: > "directoryp(char*, char const*, unsigned long)", referenced from: > Ldirectoryp(long, long) in csl-print.o > "fwin_menus(char**, char**, void (*)())", referenced from: > cslstart(int, char const**, int (*)(int)) in csl-csl.o > "delete_file(char*, char const*, unsigned long)", referenced from: > Lopen(long, long, long) in csl-print.o > Ldelete_file(long, long) in csl-print.o > "file_exists(char*, char const*, unsigned long, char*)", referenced from: > Lfiledate(long, long) in csl-print.o > CSLtmpnam(char const*, unsigned long) in csl-sysfwin.o > "file_length(char*, char const*, unsigned long)", referenced from: > Lfile_length(long, long) in csl-print.o > "rename_file(char*, char const*, unsigned long, char*, char const*, unsigned > long)", referenced from: > Lopen(long, long, long) in csl-print.o > Lrename_file(long, long, long) in csl-print.o > "fwin_getchar()", referenced from: > wimpget(char*) in csl-sysfwin.o > "fwin_putchar(int)", referenced from: > char_to_terminal(int, long) in csl-print.o > "fwin_restore()", referenced from: > cslstart(int, char const**, int (*)(int)) in csl-csl.o > "fwin_startup(int, char const**, int (*)(int, char const**))", referenced > from: > _main in csl-csl.o > "get_truename(char*, char const*, unsigned long)", referenced from: > Ltruename(long, long) in csl-print.o > "file_readable(char*, char const*, unsigned long)", referenced from: > Lfile_readable(long, long) in csl-print.o > "fwin_showmath(char const*)", referenced from: > Lmath_display(long, long) in csl-print.o > "truncate_file(__sFILE*, long)", referenced from: > finished_with(int) in csl-preserve.o > "file_writeable(char*, char const*, unsigned long)", referenced from: > Lfile_writeable(long, long) in csl-print.o > "scan_directory(char const*, void (*)(char const*, int, long))", referenced > from: > list_one_library(long, bool) in csl-preserve.o > Llibrary_members(long, long) in csl-preserve.o > "delete_wildcard(char*, char const*, unsigned long)", referenced from: > Ldelete_wildcard(long, long) in csl-print.o > "fwin_report_mid(char const*)", referenced from: > Lwindow_heading2(long, long, long) in csl-print.o > "fwin_set_lookup(char* (*)(char*, int))", referenced from: > _main in csl-csl.o > "fwin_set_prompt(char const*)", referenced from: > interrupted(long) in csl-csl.o > Lsetpchar(long, long) in csl-fasl.o > "fwin_windowmode()", referenced from: > set_up_variables(int) in csl-restart.o > interrupted(long) in csl-csl.o > "change_directory(char*, char const*, unsigned long)", referenced from: > Lchange_directory(long, long) in csl-print.o > "create_directory(char*, char const*, unsigned long)", referenced from: > Lcreate_directory(long, long) in csl-print.o > "fwin_report_left(char const*)", referenced from: > Lwindow_heading2(long, long, long) in csl-print.o > report_time(int, int) in csl-sysfwin.o > "fwin_report_right(char const*)", referenced from: > Lwindow_heading2(long, long, long) in csl-print.o > report_space(unsigned long long, double, double) in csl-sysfwin.o > "process_file_name(char*, char const*, unsigned long)", referenced from: > open_pds(char const*, int) in csl-preserve.o > "fwin_ensure_screen()", referenced from: > ensure_screen() in csl-print.o > write_action_terminal(int, long) in csl-print.o > prin_to_terminal(long) in csl-print.o > prin_to_stdout(long) in csl-print.o > prin_to_error(long) in csl-print.o > prin_to_trace(long) in csl-print.o > prinhex_to_trace(char const*, long) in csl-print.o > ... > "fwin_set_help_file(char const*, char const*)", referenced from: > Lset_help_file(long, long, long) in csl-fasl.o > "get_home_directory(char*, unsigned long)", referenced from: > Luser_homedir_pathname(long) in csl-print.o > "fwin_acknowledge_tick()", referenced from: > reclaim(long, char const*, int, unsigned long) in csl-cslgc.o > "fwin_refresh_switches(char**, char**)", referenced from: > review_switch_settings() in csl-restart.o > "get_current_directory(char*, unsigned long)", referenced from: > Lget_current_directory(long) in csl-print.o > cslstart(int, char const**, int (*)(int)) in csl-csl.o > "list_directory_members(char*, char const*, unsigned long, void (*)(char > const*, int, long))", referenced from: > Llist_directory(long, long) in csl-print.o > "fwin_callback_to_interrupt(int (*)(int))", referenced from: > cslstart(int, char const**, int (*)(int)) in csl-csl.o > "Cmkdir(char const*)", referenced from: > open_pds(char const*, int) in csl-preserve.o > unpending(directory*) in csl-preserve.o > "my_getenv(char const*)", referenced from: > Lgetenv(long, long) in csl-cslread.o > "my_system(char const*)", referenced from: > Lsystem(long, long) in csl-cslread.o > "open_file(char*, char const*, unsigned long, char const*, __sFILE*)", > referenced from: > Lopen(long, long, long) in csl-print.o > Lopen_url(long, long) in csl-print.o > Lbinary_open_output(long, long) in csl-print.o > Lbinary_open_input(long, long) in csl-print.o > Lspool(long, long) in csl-cslread.o > cslstart(int, char const**, int (*)(int)) in csl-csl.o > cslaction() in csl-csl.o > ... > "FX::text", referenced from: > Lmath_display(long, long) in csl-print.o > "_about_box_description", referenced from: > set_up_variables(int) in csl-restart.o > fwin_main(int, char const**) in csl-csl.o > "_about_box_rights_1", referenced from: > set_up_variables(int) in csl-restart.o > "_about_box_rights_2", referenced from: > set_up_variables(int) in csl-restart.o > "_about_box_title", referenced from: > set_up_variables(int) in csl-restart.o > fwin_main(int, char const**) in csl-csl.o > "_fullProgramName", referenced from: > set_up_variables(int) in csl-restart.o > "_fwin_linelength", referenced from: > write_action_terminal(int, long) in csl-print.o > write_action_spool(int, long) in csl-print.o > "_fwin_pause_at_end", referenced from: > cslstart(int, char const**, int (*)(int)) in csl-csl.o > "_fwin_use_xft", referenced from: > cslstart(int, char const**, int (*)(int)) in csl-csl.o > "_programDir", referenced from: > find_image_directory(int, char const**) in csl-sysfwin.o > find_gnuplot(char*) in csl-sysfwin.o > "_programName", referenced from: > set_up_variables(int) in csl-restart.o > find_image_directory(int, char const**) in csl-sysfwin.o > "_scan_leafstart", referenced from: > make_dir_list(char const*, int, long) in csl-print.o > "_showmathInitialised", referenced from: > set_up_variables(int) in csl-restart.o > "_texmacs_mode", referenced from: > set_up_variables(int) in csl-restart.o > setup(int, double) in csl-restart.o > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > gmake[3]: *** [Makefile:4796: csl] Error 1 > make[2]: *** [all] Error 2 > > > But I guess the options are: > > a) Figure out where in the code it calls the gnuplot executable, and change > it to be the absolute path, so that the $PATH variable is not needed. I found > lines such as these: > > ./packages/plot/gnuintfc.red: plotcommand!* := find!-gnuplot(); > ./packages/plot/gnuintfc.red: plotcommand!* := find!-gnuplot(); > ./packages/plot/gnuintfc.red: plotcommand!* := bldmsg("gnuplot > %w",plotcmds!*); > ./packages/plot/gnuintfc.red: plotcommand!* := find!-gnuplot(); > > Maybe using the full "/opt/local/bin/gnuplot" on these lines is the answer. > > b) Rename or move the real executable and in its place put a wrapper script > that sets $PATH and then calls the original executable. > > >
