编译 open-iscsi,__without__ systemd

编译 open-iscsi,__without__ systemd

你好@helping people,

我尝试在 K4.9.207 上编译 open-scsi,但是这个系统有systemd。对我来说还行。

我懂了:

wget https://github.com/open-iscsi/open-iscsi/archive/2.1.0.tar.gz

wget https://github.com/open-iscsi/open-isns/archive/v0.99.tar.gz

然后制作......但制作到此结束:

iscsid.c:38:10: 致命错误:systemd/sd-daemon.h:没有此文件或目录 #include ^~~~~~~~~~~~~~~~~~~~~~ 应该没问题,因为这个系统没有 systemd。我还在 makefile 中发现

# export systemd disablement if set
ifneq ($(NO_SYSTEMD),)
export NO_SYSTEMD
WITHOUT_ARG = --without-systemd
else
WITHOUT_ARG =
endif

make --without-systemd 为我提供了 make 的帮助,我确实有这些选项。但没有 --without-systemd-option。

有没有办法编译 open-scsi没有(以某种方式使用上面的这个选项以及如何)systemd

提前感谢 ELindemann


@Nazar Trisha,这是完整的 make 日志。

 make
cd iscsiuio; ./configure
checking for a BSD-compatible install... install
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for bash... /bin/sh
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking for ranlib... ranlib
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether gcc needs -traditional... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for off_t... yes
checking for size_t... yes
checking for int8_t... yes
checking for uint8_t... yes
checking for int16_t... yes
checking for uint16_t... yes
checking for int32_t... yes
checking for uint32_t... yes
checking for int64_t... yes
checking for uint64_t... yes
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking whether byte ordering is bigendian... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... (cached) ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... yes
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
Package libsystemd was not found in the pkg-config search path.
Perhaps you should add the directory containing `libsystemd.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libsystemd' found
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/apps/Makefile
config.status: creating src/apps/dhcpc/Makefile
config.status: creating src/apps/brcm-iscsi/Makefile
config.status: creating src/uip/Makefile
config.status: creating src/unix/Makefile
config.status: creating src/unix/libs/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default commands
make -C libopeniscsiusr
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/libopeniscsiusr'
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o context.o context.c
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o misc.o misc.c
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o session.o session.c
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o sysfs.o sysfs.c
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o iface.o iface.c
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o idbm.o idbm.c
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o node.o node.c
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o default.o default.c
CFLAGS= -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod  -shared -Wl,-soname=libopeniscsiusr.so.0.2.0 -o libopeniscsiusr.so.0.2.0 context.o misc.o session.o sysfs.o iface.o idbm.o node.o default.o -lkmod
ln -sf libopeniscsiusr.so.0.2.0 libopeniscsiusr.so
ln -sf libopeniscsiusr.so.0.2.0 libopeniscsiusr.so.0
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod  -I../libopeniscsiusr -g  -lkmod   -L../libopeniscsiusr -lopeniscsiusr  tests/test_context.c libopeniscsiusr.so.0.2.0   -o tests/test_context
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod  -I../libopeniscsiusr -g  -lkmod   -L../libopeniscsiusr -lopeniscsiusr  tests/test_session.c libopeniscsiusr.so.0.2.0   -o tests/test_session
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod  -I../libopeniscsiusr -g  -lkmod   -L../libopeniscsiusr -lopeniscsiusr  tests/test_iface.c libopeniscsiusr.so.0.2.0   -o tests/test_iface
cc -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod  -I../libopeniscsiusr -g  -lkmod   -L../libopeniscsiusr -lopeniscsiusr  tests/test_node.c libopeniscsiusr.so.0.2.0   -o tests/test_node
install: creating directory 'docs/man'
'docs/libopeniscsiusr.h.3' -> 'docs/man/libopeniscsiusr.h.3'
cat libopeniscsiusr/libopeniscsiusr.h libopeniscsiusr/libopeniscsiusr_common.h libopeniscsiusr/libopeniscsiusr_session.h libopeniscsiusr/libopeniscsiusr_iface.h | \
    perl docs/doc-preclean.pl > "/tmp/tmp.zWqxwrYQdZ"
perl docs/kernel-doc -man "/tmp/tmp.zWqxwrYQdZ" | \
    perl docs/split-man.pl docs/man
Creating docs/man/iscsi_log_priority_str.3
Creating docs/man/iscsi_strerror.3
Creating docs/man/iscsi_context_new.3
Creating docs/man/iscsi_context_free.3
Creating docs/man/iscsi_context_log_priority_set.3
Creating docs/man/iscsi_context_log_priority_get.3
Creating docs/man/iscsi_context_log_func_set.3
Creating docs/man/iscsi_context_userdata_set.3
Creating docs/man/iscsi_context_userdata_get.3
Creating docs/man/iscsi_sessions_get.3
Creating docs/man/iscsi_sessions_free.3
Creating docs/man/iscsi_session_get.3
Creating docs/man/iscsi_session_free.3
Creating docs/man/iscsi_default_iface_setup.3
Creating docs/man/iscsi_ifaces_get.3
Creating docs/man/iscsi_ifaces_free.3
Creating docs/man/iscsi_iface_get.3
Creating docs/man/iscsi_iface_free.3
Creating docs/man/iscsi_nodes_get.3
Creating docs/man/iscsi_nodes_free.3
Creating docs/man/iscsi_session_sid_get.3
Creating docs/man/iscsi_session_persistent_address_get.3
Creating docs/man/iscsi_session_persistent_port_get.3
Creating docs/man/iscsi_session_target_name_get.3
Creating docs/man/iscsi_session_username_get.3
Creating docs/man/iscsi_session_password_get.3
Creating docs/man/iscsi_session_username_in_get.3
Creating docs/man/iscsi_session_password_in_get.3
Creating docs/man/iscsi_session_recovery_tmo_get.3
Creating docs/man/iscsi_session_lu_reset_tmo_get.3
Creating docs/man/iscsi_session_tgt_reset_tmo_get.3
Creating docs/man/iscsi_session_abort_tmo_get.3
Creating docs/man/iscsi_session_tpgt_get.3
Creating docs/man/iscsi_session_address_get.3
Creating docs/man/iscsi_session_port_get.3
Creating docs/man/iscsi_session_iface_get.3
Creating docs/man/iscsi_iface_ipaddress_get.3
Creating docs/man/iscsi_iface_hwaddress_get.3
Creating docs/man/iscsi_iface_netdev_get.3
Creating docs/man/iscsi_iface_transport_name_get.3
Creating docs/man/iscsi_iface_iname_get.3
Creating docs/man/iscsi_iface_port_state_get.3
Creating docs/man/iscsi_iface_port_speed_get.3
Creating docs/man/iscsi_iface_name_get.3
Creating docs/man/iscsi_iface_dump_config.3
Creating docs/man/iscsi_iface_print_config.3
Creating docs/man/iscsi_is_default_iface.3
rm -f "/tmp/tmp.zWqxwrYQdZ"
find docs/man -type f -name \*[0-9].gz
docs/man/iscsi_session_iface_get.3.gz
docs/man/iscsi_session_persistent_port_get.3.gz
docs/man/iscsi_iface_netdev_get.3.gz
docs/man/iscsi_iface_transport_name_get.3.gz
docs/man/iscsi_session_password_in_get.3.gz
docs/man/iscsi_context_userdata_get.3.gz
docs/man/iscsi_session_target_name_get.3.gz
docs/man/iscsi_iface_hwaddress_get.3.gz
docs/man/iscsi_iface_get.3.gz
docs/man/iscsi_context_log_func_set.3.gz
docs/man/libopeniscsiusr.h.3.gz
docs/man/iscsi_iface_print_config.3.gz
docs/man/iscsi_sessions_get.3.gz
docs/man/iscsi_log_priority_str.3.gz
docs/man/iscsi_session_recovery_tmo_get.3.gz
docs/man/iscsi_session_sid_get.3.gz
docs/man/iscsi_iface_port_speed_get.3.gz
docs/man/iscsi_context_userdata_set.3.gz
docs/man/iscsi_context_new.3.gz
docs/man/iscsi_session_persistent_address_get.3.gz
docs/man/iscsi_iface_iname_get.3.gz
docs/man/iscsi_session_get.3.gz
docs/man/iscsi_sessions_free.3.gz
docs/man/iscsi_default_iface_setup.3.gz
docs/man/iscsi_session_tpgt_get.3.gz
docs/man/iscsi_session_address_get.3.gz
docs/man/iscsi_session_port_get.3.gz
docs/man/iscsi_iface_ipaddress_get.3.gz
docs/man/iscsi_session_username_in_get.3.gz
docs/man/iscsi_ifaces_get.3.gz
docs/man/iscsi_context_log_priority_set.3.gz
docs/man/iscsi_session_username_get.3.gz
docs/man/iscsi_session_abort_tmo_get.3.gz
docs/man/iscsi_session_lu_reset_tmo_get.3.gz
docs/man/iscsi_session_password_get.3.gz
docs/man/iscsi_iface_port_state_get.3.gz
docs/man/iscsi_nodes_free.3.gz
docs/man/iscsi_ifaces_free.3.gz
docs/man/iscsi_nodes_get.3.gz
docs/man/iscsi_strerror.3.gz
docs/man/iscsi_iface_name_get.3.gz
docs/man/iscsi_iface_dump_config.3.gz
docs/man/iscsi_context_log_priority_get.3.gz
docs/man/iscsi_is_default_iface.3.gz
docs/man/iscsi_context_free.3.gz
docs/man/iscsi_session_tgt_reset_tmo_get.3.gz
docs/man/iscsi_iface_free.3.gz
docs/man/iscsi_session_free.3.gz
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/libopeniscsiusr'
make -C utils/sysdeps
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/sysdeps'
cc -O2 -fno-inline -g  -Wall -Wstrict-prototypes   -c -o sysdeps.o sysdeps.c
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/sysdeps'
make -C utils/fwparam_ibft
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/fwparam_ibft'
cc -O2 -g -fPIC -Wall -Wstrict-prototypes -Wno-format-truncation -I../../include -I../../usr -D_GNU_SOURCE -I../../libopeniscsiusr   -c -o fw_entry.o fw_entry.c
cc -O2 -g -fPIC -Wall -Wstrict-prototypes -Wno-format-truncation -I../../include -I../../usr -D_GNU_SOURCE -I../../libopeniscsiusr   -c -o fwparam_sysfs.o fwparam_sysfs.c
cc -O2 -g -fPIC -Wall -Wstrict-prototypes -Wno-format-truncation -I../../include -I../../usr -D_GNU_SOURCE -I../../libopeniscsiusr   -c -o ../../usr/iscsi_net_util.o ../../usr/iscsi_net_util.c
cc -O2 -g -fPIC -Wall -Wstrict-prototypes -Wno-format-truncation -I../../include -I../../usr -D_GNU_SOURCE -I../../libopeniscsiusr   -c -o prom_lex.o prom_lex.c
cc -O2 -g -fPIC -Wall -Wstrict-prototypes -Wno-format-truncation -I../../include -I../../usr -D_GNU_SOURCE -I../../libopeniscsiusr   -c -o prom_parse.tab.o prom_parse.tab.c
cc -O2 -g -fPIC -Wall -Wstrict-prototypes -Wno-format-truncation -I../../include -I../../usr -D_GNU_SOURCE -I../../libopeniscsiusr   -c -o fwparam_ppc.o fwparam_ppc.c
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/fwparam_ibft'
make -C usr
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/usr'
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iscsi_util.o iscsi_util.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o io.o io.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o auth.o auth.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iscsi_timer.o iscsi_timer.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o login.o login.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o log.o log.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iface.o iface.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o idbm.o idbm.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o sysfs.o sysfs.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o host.o host.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o session_info.o session_info.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iscsi_sysfs.o iscsi_sysfs.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iscsid_req.o iscsid_req.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o transport.o transport.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iser.o iser.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o cxgbi.o cxgbi.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o be2iscsi.o be2iscsi.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o initiator_common.o initiator_common.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iscsi_err.o iscsi_err.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o flashnode.o flashnode.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o uip_mgmt_ipc.o uip_mgmt_ipc.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o netlink.o netlink.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o initiator.o initiator.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o scsi.o scsi.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o actor.o actor.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o event_poll.o event_poll.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o mgmt_ipc.o mgmt_ipc.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o kern_err_table.o kern_err_table.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o local_strings.o local_strings.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o discovery.o discovery.c
cc -O2 -g -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iscsid.o iscsid.c
iscsid.c:38:10: fatal error: systemd/sd-daemon.h: No such file or directory
 #include <systemd/sd-daemon.h>
          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
<builtin>: recipe for target 'iscsid.o' failed
make[1]: *** [iscsid.o] Error 1
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/usr'
Makefile:66: recipe for target 'user' failed
make: *** [user] Error 2

@Lacek

我编辑了 makefile

# if you are packaging open-iscsi, set this variable to the location
# that you want everything installed into.
DESTDIR ?=

prefix = /usr
exec_prefix = /
sbindir = $(exec_prefix)/sbin
bindir = $(exec_prefix)/bin
mandir = $(prefix)/share/man
etcdir = /etc
initddir = $(etcdir)/init.d
rulesdir = $(etcdir)/udev/rules.d
systemddir = $(prefix)/lib/systemd/system

MANPAGES = doc/iscsid.8 doc/iscsiadm.8 doc/iscsi_discovery.8 \
<------><------>iscsiuio/docs/iscsiuio.8 doc/iscsi_fw_login.8 doc/iscsi-iname.8 \
<------><------>doc/iscsistart.8
PROGRAMS = usr/iscsid usr/iscsiadm utils/iscsi-iname iscsiuio/src/unix/iscsiuio \
<------><------>   usr/iscsistart
SCRIPTS = utils/iscsi_discovery utils/iscsi_fw_login utils/iscsi_offload \
<------><------>  utils/iscsi-gen-initiatorname
INSTALL = install
ETCFILES = etc/iscsid.conf
IFACEFILES = etc/iface.example
RULESFILES = utils/50-iscsi-firmware-login.rules
SYSTEMDFILES = etc/systemd/iscsi.service \
<------><------><------>   etc/systemd/iscsid.service etc/systemd/iscsid.socket \
<------><------><------>   etc/systemd/iscsiuio.service etc/systemd/iscsiuio.socket

export DESTDIR prefix INSTALL

CFLAGS=-DNO_SYSTEMD make


# Compatibility: parse old OPTFLAGS argument
ifdef OPTFLAGS
CFLAGS = $(OPTFLAGS)
endif

# Export it so configure of iscsiuio will
# pick it up.
ifneq (,$(CFLAGS))
export CFLAGS
endif

CFLAGS=-DNO_SYSTEMD make
export CFLAG

然后再次 make 结果是:

make
make -C libopeniscsiusr
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/libopeniscsiusr'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/libopeniscsiusr'
make -C utils/sysdeps
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/sysdeps'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/sysdeps'
make -C utils/fwparam_ibft
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/fwparam_ibft'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/utils/fwparam_ibft'
make -C usr
make[1]: Entering directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/usr'
cc -DNO_SYSTEMD make -Wall -Wstrict-prototypes -I../include -I. -D_GNU_SOURCE -I../libopeniscsiusr -I/usr/include/kmod    -c -o iscsid.o iscsid.c
cc: error: make: No such file or directory
<builtin>: recipe for target 'iscsid.o' failed
make[1]: *** [iscsid.o] Error 1
make[1]: Leaving directory '/temp/2.1.0/2.1.0/open-iscsi-2.1.0/usr'
Makefile:69: recipe for target 'user' failed
make: *** [user] Error 2

然后看了看错误出在哪里,正如 make 告诉我的:

cd iscsiuio; ./configure
checking for a BSD-compatible install... install
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for bash... /bin/sh
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/temp/2.1.0/2.1.0/open-iscsi-2.1.0/iscsiuio':
configure: error: C compiler cannot create executables
See **`config.log'** for more details
Makefile:87: recipe for target 'iscsiuio/Makefile' failed
make: *** [iscsiuio/Makefile] Error 77

路径:/sbin 路径:/usr/sbin 路径:/bin 路径:/usr/bin 路径:/usr/local/bin 路径:/usr/local/go/bin 路径:/usr/local/jre/bin

## ----------- ##
## Core tests. ##
## ----------- ##

configure:2496: checking for a BSD-compatible install
configure:2564: result: install
configure:2575: checking whether build environment is sane
configure:2630: result: yes
configure:2781: checking for a thread-safe mkdir -p
configure:2820: result: /bin/mkdir -p
configure:2827: checking for gawk
configure:2843: found /bin/gawk
configure:2854: result: gawk
configure:2865: checking whether make sets $(MAKE)
configure:2887: result: yes
configure:2916: checking whether make supports nested variables
configure:2933: result: yes
configure:3023: checking for bash
configure:3053: result: /bin/sh
configure:3113: checking for gcc
configure:3129: found /usr/bin/gcc
configure:3140: result: gcc
configure:3369: checking for C compiler version
configure:3378: gcc --version >&5
gcc (eisfair Linux) 8.1.1 20180719 [gcc-8-branch revision 262874]
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


configure:3389: $? = 0
configure:3378: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-pc-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=hsa:nvptx-none
Target: x86_64-pc-linux-gnu
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir
Thread model: posix
gcc version 8.1.1 20180719 [gcc-8-branch revision 262874] (eisfair Linux).
configure:3389: $? = 0
configure:3378: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3389: $? = 1
configure:3378: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input files
compilation terminated.
configure:3389: $? = 1
configure:3409: checking whether the C compiler works
configure:3431: gcc -DNO_SYSTEMD make   conftest.c  >&5
gcc: error: make: No such file or directory
configure:3435: $? = 1
configure:3473: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "iscsiuio"
| #define PACKAGE_TARNAME "iscsiuio"
| #define PACKAGE_VERSION "0.7.8.6"
| #define PACKAGE_STRING "iscsiuio 0.7.8.6"
| #define PACKAGE_BUGREPORT "[email protected]"
| #define PACKAGE_URL ""
| #define PACKAGE "iscsiuio"
| #define VERSION "0.7.8.6"
| /* end confdefs.h.  */
|.
| int
| main ()
| {
|.
|   ;
|   return 0;
| }
configure:3478: error: in `/temp/2.1.0/2.1.0/open-iscsi-2.1.0/iscsiuio':
configure:3480: error: C compiler cannot create executables
See `config.log' for more details

想都别想 :-(

有什么想法吗?第一个错误已经消失,但现在又出现了另一个。请进一步帮助。

艾尔·林德曼

答案1

我怀疑有“更好”的方法来实现这一点,但make像这样运行就可以了:

CFLAGS=-DNO_SYSTEMD make

相关内容