我想在我的mac osx 10.10上编译linux内核2.6,所以我按照以下步骤操作:Linux kernel development and debugging using Eclipse CDT.
但是我在步骤中遇到了问题:make menuconfig O = / mnt / build / linux-2.6。 错误在下面,我该怎么办?
GEN /mnt/build/linux-2.6/Makefile
HOSTLD scripts/kconfig/mconf
Undefined symbols for architecture x86_64:
"_COLS", referenced from:
_dialog_checklist in checklist.o
_dialog_clear in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
"_LINES", referenced from:
_dialog_checklist in checklist.o
_dialog_clear in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
"_acs_map", referenced from:
_dialog_checklist in checklist.o
_print_arrows in checklist.o
_dialog_clear in util.o
_draw_box in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
...
"_cbreak", referenced from:
_reset_dialog in util.o
"_delwin", referenced from:
_dialog_checklist in checklist.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
"_doupdate", referenced from:
_dialog_checklist in checklist.o
"_endwin", referenced from:
_end_dialog in util.o
"_flash", referenced from:
_dialog_inputbox in inputbox.o
"_getcurx", referenced from:
_print_autowrap in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_print_line in textbox.o
_print_arrows in menubox.o
"_getcury", referenced from:
_print_autowrap in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_print_line in textbox.o
_print_arrows in menubox.o
"_getmaxx", referenced from:
_dialog_checklist in checklist.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_refresh_text_box in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
"_getmaxy", referenced from:
_dialog_checklist in checklist.o
_attr_clear in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_refresh_text_box in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
...
"_has_colors", referenced from:
_init_dialog in util.o
_draw_shadow in util.o
"_init_pair", referenced from:
_init_dialog in util.o
"_initscr", referenced from:
_reset_dialog in util.o
"_keypad", referenced from:
_dialog_checklist in checklist.o
_reset_dialog in util.o
_on_key_esc in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
...
"_newwin", referenced from:
_dialog_checklist in checklist.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
"_nodelay", referenced from:
_on_key_esc in util.o
"_noecho", referenced from:
_reset_dialog in util.o
"_scrollok", referenced from:
_dialog_checklist in checklist.o
_dialog_textbox in textbox.o
_dialog_menu in menubox.o
"_start_color", referenced from:
_init_dialog in util.o
"_stdscr", referenced from:
_dialog_checklist in checklist.o
_dialog_clear in util.o
_reset_dialog in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
...
"_subwin", referenced from:
_dialog_checklist in checklist.o
_dialog_textbox in textbox.o
_dialog_menu in menubox.o
"_ungetch", referenced from:
_on_key_esc in util.o
"_waddch", referenced from:
_dialog_checklist in checklist.o
_print_item in checklist.o
_print_arrows in checklist.o
_attr_clear in util.o
_dialog_clear in util.o
_print_title in util.o
_print_button in util.o
...
"_waddnstr", referenced from:
_print_item in checklist.o
_print_arrows in checklist.o
_dialog_clear in util.o
_print_title in util.o
_print_autowrap in util.o
_print_button in util.o
_dialog_inputbox in inputbox.o
...
"_wattrset", referenced from:
_dialog_checklist in checklist.o
_print_item in checklist.o
_print_arrows in checklist.o
_attr_clear in util.o
_dialog_clear in util.o
_print_title in util.o
_print_button in util.o
...
"_wbkgdset", referenced from:
_dialog_textbox in textbox.o
_refresh_text_box in textbox.o
_dialog_menu in menubox.o
"_wclrtoeol", referenced from:
_print_line in textbox.o
_do_print_item in menubox.o
"_wgetch", referenced from:
_dialog_checklist in checklist.o
_on_key_esc in util.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
"_winch", referenced from:
_draw_shadow in util.o
"_wmove", referenced from:
_dialog_checklist in checklist.o
_print_item in checklist.o
_print_arrows in checklist.o
_attr_clear in util.o
_dialog_clear in util.o
_print_title in util.o
_print_autowrap in util.o
...
"_wnoutrefresh", referenced from:
_dialog_checklist in checklist.o
_dialog_clear in util.o
_draw_shadow in util.o
_dialog_textbox in textbox.o
_refresh_text_box in textbox.o
_dialog_menu in menubox.o
"_wprintw", referenced from:
_print_item in checklist.o
_dialog_textbox in textbox.o
_refresh_text_box in textbox.o
"_wrefresh", referenced from:
_dialog_checklist in checklist.o
_print_item in checklist.o
_dialog_inputbox in inputbox.o
_dialog_textbox in textbox.o
_refresh_text_box in textbox.o
_dialog_yesno in yesno.o
_dialog_menu in menubox.o
...
"_wscrl", referenced from:
_dialog_checklist in checklist.o
_dialog_textbox in textbox.o
_dialog_menu in menubox.o
"_wtouchln", referenced from:
_attr_clear in util.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [scripts/kconfig/mconf] Error 1
make[1]: *** [menuconfig] Error 2
make: *** [sub-make] Error 2
答案 0 :(得分:1)
您可以编译Linux内核OS OSX,但首先必须安装ncurses。您可以尝试使用brew来安装它,但我喜欢从源代码安装,所以我发现了这个:
$ curl -O ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz
$ tar -xzvf ncurses-5.9.tar.gz
$ cd ./ncurses-5.9
$ ./configure --prefix=/usr/local \
--without-cxx --without-cxx-binding --without-ada --without-progs --without-curses-h \
--with-shared --without-debug \
--enable-widec --enable-const --enable-ext-colors --enable-sigwinch --enable-wgetch-events \
&& make
$ sudo make install
您可能还需要--enable-pc-files,否则pkg-config将无法看到它(假设您已安装pkg-config)。一旦完成,你仍然有一个问题:pkg-config将安装位置报告为“/ usr / local / include / ncursesw”(就在这里,所以pkg-config是正确的),但是内部包含文件都有
<ncursesw/xxx.h>
在其中(至少ncurses.h和unctrl.h文件)。这构成了一个catch-22,因为linux使用了一些想要提供pkg-config信息的脚本,这很好,但是后来当脚本(特别是/ your-path-to-src / scripts / kconfig / lxdialog / check-lxdialog) .sh)想要编译一个测试程序,它失败了,因为pkg-config没有将“/ usr / local / include”和“ncursesw / ncurses.h”报告回适当的lxdialog / check-lxdialog.sh脚本。这会导致macos失败。为了解决这个问题,我将ncurses包含更改为:
<xxx.h>
我知道这个问题有点老了,但我想发布SOMETHING,因为我花了一段时间才发现这个问题。