Questions tagged «compiling»

编译是将源代码转换为特定计算机体系结构的字节码的过程。



1
默认使用多线程make?
有什么方法可以在系统范围内make使用多线程(在我的系统上,最好是6个线程),而不是仅通过添加-j6到命令行来使用?那么,如果我跑步make,它的行为与我跑步时相同make -j6吗?我想要此功能,因为我使用pacaur(我在Arch上)从AUR安装了很多软件包,因此我不直接运行make命令,但我仍然希望多线程来更快地构建软件包。

1
make-kpkg和make deb-pkg之间的区别
我想知道make-kpkg和之间的确切区别make deb-pkg。这个问题问的差不多,但没有令人满意的答案。以前我在用 make -j `getconf _NPROCESSORS_ONLN` deb-pkg 编译内核源代码树并生成header + kernel-image debian软件包。我发现它非常慢,因为要在我的第二代Intel i3 CPU上编译需要1个多小时。然后我发现另一种使用方法make-kpkg比deb-pkg以前使用的方法快5-6倍。我运行的代码 fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers -j `getconf _NPROCESSORS_ONLN` 并且只需要10-15分钟即可编译并生成deb软件包。在这两个编译过程中,工作都被划分了,_NPROCESSORS_ONLN那么有什么区别呢?提前致谢。

2
如何将其他文件编译到Android ROM的根目录中
我正在基于Cyanogenmod ROM的内核源代码构建自定义Android内核。我想将文件夹和文件添加到操作系统(/)的根文件夹中。例如,在编译完内核之后,我想创建一个名为toto(absolute path = /toto)的额外文件夹。 我真的不知道必须编辑哪些文件以及如何进行工作。 注意:如果您是Android用户(不是ROM开发人员),想向其中添加文件rootfs,请查看相关的Android.SE问题。

4
在Raspberry Pi上执行交叉编译的程序时,“没有这样的文件或目录”
我最近买了Raspberry Pi。我已经配置好了,并且在桌面(amd64)上安装了用于arm的交叉编译器。我编译了一个简单的“ hello world”程序,然后使用将其从桌面复制到Pi scp ./hello david@192.168.1.33:~/hello。登录我的Pi后,我运行ls -l hello并得到一个正常响应: -rwxr-xr-x 1 david david 6774 Nov 16 18:08 hello 但是当我尝试执行它时,得到以下信息: david@raspberry-pi:~$ ./hello -bash: ./hello: No such file or directory david@raspberry-pi:~$ file hello hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x6a926b4968b3e1a2118eeb6e656db3d21c73cf10, not …

2
“ linux-headers-3.7.5-1-ARCH”意味着什么软件包?
我正在调试一个封闭源代码的软件安装程序,该安装程序似乎对我的发行版有一些先入为主的想法。找不到后,安装将中止apt-get。它尝试运行的命令是: apt-get -y -q install linux-headers-3.7.5-1-ARCH 我想“软件包名称”来自/usr/src,唯一的入口是linux-3.7.5-1-ARCH。是否有人对我应该使用pacman安装哪个软件包有任何有根据的猜测? 标头可能将用于编译自定义硬件的驱动程序。 这是安装日志中的一些相关文本: 注:必须针对Linux OS当前正在运行的内核的内核源构建Linux驱动程序。该脚本为您自动完成此任务。 注意:您必须安装Linux OS内核标头源文件。如果计划运行Jungo调试监视器,则可能还需要安装“ compat-libstdc ++”和“ libpng3”。 您的Linux当前正在运行以下内核版本: 3.7.5-1-ARCH

1
在更新时自动应用模块补丁并编译内核吗?
我最近应用了单行修补程序,drivers/bluetooth/btusb.c以实现与我的蓝牙设备的兼容性。但是,每当我进行内核升级时,该补丁将丢失,直到有人向后移植为止(这不太可能)。我有办法运行脚本并自动修补每个新的内核升级吗? DKMS似乎是一个很好的解决方案,但是我不确定如何设置。我不想每次获得更新时都重新编译整个Linux内核,但我想将该补丁应用于btusb模块,重新编译,并在每次更新时将其插入到我的内核中。我如何使用从获得的资源来做到这一点apt-get source linux-source-3.2.0?我需要复制哪些文件?关键make调用是make M=drivers/bluetooth modules,但这取决于首先要构建的其他内核实用程序。我该如何为此组装DKMS模块? 关于如何使用补丁的详细信息,可以发现这里的问Ubuntu Linux系统。

3
从源编译对已经安装的应用程序的影响
我使用Ubuntu 12.04。假设我已经package x从存储库(及其所有依赖项)安装了1.7版,但是我需要一些仅在1.8版中可用的功能,因此我下载了源tar并进行了编译: ./configure make make install 这会覆盖现有的1.7二进制文件吗? 如果现有二进制文件被覆盖,那么程序包管理器是否会反映新版本(1.8),并且package x将来可以由程序包管理器进行更新? 如果package y具有package x 1.8- 依赖关系,将被满足吗? 我一直试图在网上找到一个很好的资源来解释这一点。如果您有任何建议,请让我知道。

2
使用默认配置编译内核
假设: 该平台: anisha@linux-dopx:~/> uname -a Linux linux-dopx 2.6.34-12-desktop #1 SMP PREEMPT 2010-06-29 02:39:08 +0200 x86_64 x86_64 x86_64 GNU/Linux 下载的内核是kernel.org上最新的稳定版本。 我们在选项中保留默认值(不做任何更改)make menuconfig。 只需输入make,make install,grub-update,并重新启动。 现在,按照这些假设,是否仍然需要对文件进行一些其他更改或编译一些其他驱动程序以确保无错重启? 如果是,那么这些变化取决于什么? 编辑1: anisha@linux-dopx:/> sudo /sbin/lspci -n 00:00.0 0600: 8086:29c0 (rev 10) 00:02.0 0300: 8086:29c2 (rev 10) 00:1b.0 0403: 8086:27d8 (rev 01) 00:1c.0 0604: 8086:27d0 (rev 01) …

1
Linux内核安装中的严重致命错误
我已经从源代码编译Linux内核2.6.24.6(没有问题)并尝试安装它。具体来说,在解压缩Linux源代码之后,我做了 make && make modules 编译。然后经过一些配置,我只是使用了 sudo make modules_install install 安装新生成的二进制文件。在此过程中,有关定位file的错误/sys/class/net/eth0/device/bus。它还会引发严重的致命错误。详细的错误堆栈如下: sh /mnt/factor/myProj3/linux-2.6.24.6/arch/x86/boot/install.sh 2.6.24.6 arch/x86/boot/bzImage System.map "/boot" unable to stat /sys/class/net/eth0/device/bus: No such file or directory WARNING: No module xenblk found for kernel 2.6.24.6, continuing anyway grubby fatal error: unable to find a suitable template 源代码应该没问题。致命错误的原因可能是什么?如果不修复它,就无法安装Linux。请指教。

2
从源代码构建工具/库有什么优势?
通过源代码构建,您会获得任何好处吗?代码是否针对您的硬件架构进行了更好的优化?总的来说,优化效果更好吗? 为什么有人选择从源代码构建而不是使用像APT / yum这样的软件包管理系统?如果有某种形式的优化收益,什么时候超过了软件包管理系统的收益?


1
使用openssl支持构建python
我有以下目录结构: nchambers@nchambers-305E4A-305E5A-305E7A:~/mini-bin$ la 2to3 cpp-5.3.0 gcov-5.3.0 grmid-5.3.0 objcopy-2.25.1 python3.5-config .sources 2to3-3.5 elfedit-2.25.1 gcov-tool-5.3.0 grmiregistry-5.3.0 objdump-2.25.1 python3.5m strings-2.25.1 addr2line-2.25.1 g++-5.3.0 gfortran-5.3.0 gserialver-5.3.0 pydoc python3.5m-config strip-2.25.1 aot-compile-5.3.0 gappletviewer-5.3.0 gij-5.3.0 gtnameserv-5.3.0 pydoc3 python3-config x86_64-unknown-linux-gnu-c++-5.3.0 ar-2.25.1 gc-analyze-5.3.0 gjar-5.3.0 idle pydoc3.5 python-config x86_64-unknown-linux-gnu-g++-5.3.0 .archives gcc-5.3.0 gjarsigner-5.3.0 idle3 python pyvenv x86_64-unknown-linux-gnu-gcc-5.3.0 as-2.25.1 gcc-ar-5.3.0 gjavah-5.3.0 idle3.5 python2 …

1
我应该安装ibus-1.0来构建Webdriver吗?
在构建一个库(Webdriver)的过程中,出现以下错误: Package ibus-1.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `ibus-1.0.pc' to the PKG_CONFIG_PATH environment variable No package 'ibus-1.0' found 似乎是由于Webdriver的源代码中的以下行: pkg-config ibus-1.0 --libs 运行它时会产生相同的输出。 因此,我ibus 使用其网站上的安装说明进行了安装: sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 但是调用后我仍然得到相同的输出pkg-config ibus-1.0 --libs。我应该安装ibus 1.0来构建该库吗?如果是,我在哪里可以找到它?它似乎没有出现在ibus的下载列表中? 我的操作系统是Ubuntu 13.04

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.