I am new to coding, however I have developed a PoW minable cryptocurrency with working Linux command line wallet, however when using the gitian-descriptors build scripts (github.com/gurtaj-project/gurtaj.git)
I am trying to link Linux to Windows and create a Windows .exe QT via build-script(Gitian-win32.yml)however I come across the error of .o files, object files not being recognized by the ld when i cat into the build.log
Please go easy on me and explain in simple terms why the build-script is crashing because of this, I will attach screenshot for more clear details.
Here is the build script with clearly identified dependencies and required files: https://github.com/gurtaj-project/gurtaj/blob/v0.8/contrib/gitian-descriptors/gitian-win32.yml
Compiling error in gitian-descriptors/var/cat build.log
./build/version.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make[2]: *** [release/gurtaj-qt.exe] Error 1
make[2]: Leaving directory '/home/ubuntu/build/gurtaj'
make: *** [release] Error 2
Related
My environment: python3.8, gcc12.2, cmake4.3. I want to compile and install the glibc library. When I finish compiling and installing, my yum has an error
The following is the error content:
CRITICAL:yum.cli:Config error: Error accessing file for config file:///etc/yum.conf
But I obviously have /etc/yum.conf, but I still get an error
I hope to know why and get a solution, thank you
I downloaded and compiled glibc, and the installation was successful, but there was an error message after installation
collect2: error: ld returned 1 exit status
Execution of gcc failed!
The script has found some problems with your installation!
Please read the FAQ and the README file and check the following:
- Did you change the gcc specs file (necessary after upgrading from
Linux libc5)?
- Are there any symbolic links of the form libXXX.so to old libraries?
Links like libm.so -> libm.so.5 (where libm.so.5 is an old library) are wrong,
libm.so should point to the newly installed glibc file - and there should be
only one such link (check e.g. /lib and /usr/lib)
You should restart this script from your build directory after you've
fixed all problems!
Btw. the script doesn't work if you're installing GNU libc not as your
primary library!
make[1]: *** [Makefile:111: install] Error 1
make[1]: Leaving directory '/opt/glibc-2.29'
make: *** [Makefile:12:install] 错误 2
But I found on the net that this error doesn't affect anything
I'm working with a Linux driver that is building on v5.7.x kernels but not on the latest v5.8.x releases.
To summarise, most of the driver is pre-built and the kernel interface is built on the target. This involves a make -f Kbuild command.
Having checked all of the relevant kernel interface files for any changes that would affect us, normally the driver would just build as usual on a new kernel. However, this time we get the following error:
make[2]: *** [scripts/Makefile.modpost:111: /path/to/source/Module.symvers] Error 1
make[1]: *** [Makefile:1669: modules] Error 2
make[1]: Leaving directory '/usr/src/kernels/5.8.0-1.el8.elrepo.x86_64'
make: *** [Kbuild:26: default] Error 2
This is from CentOS 8.1, but the same error has been seen on Ubuntu 20.04.
I am no expert on this so interpreting these errors is a bit difficult. I have tried building with the KBUILD_VERBOSE flag and it doesn't really provide any useful information, other than the build succeeding until this point.
On previous kernels the Module.symvers file would be created but empty. On 5.8 this file is not created at all presumably due to this error. As a result, the .ko file is not created.
Finally, if we drop in the source files rather than the pre-built .o files the build does succeed. These .o files are built with a very old version of GCC (4.4.7) but we have also tried building with a much newer version (8.3.1), the same version as the target machine.
I would appreciate suggestions for things to check. Let me know if any other details would help.
Edit:
I ran make on Makefile.modpost manually and got the following output:
sudo make -f ./scripts/Makefile.modpost
WARNING: Symbol version dump "vmlinux.symvers" is missing.
Modules may not have dependencies or modversions.
make -f /scripts/Makefile.modfinal
make[1]: Entering directory '/usr/src/linux-headers-5.8.0-050800-generic'
make[1]: /scripts/Makefile.modfinal: No such file or directory
make[1]: *** No rule to make target '/scripts/Makefile.modfinal'. Stop.
make[1]: Leaving directory '/usr/src/linux-headers-5.8.0-050800-generic'
make: *** [scripts/Makefile.modpost:117: __modpost] Error 2
I am answering my own question in case it helps anyone else with this problem. Although it has never been an issue in the past, we've always had a warning that the corresponding .o.cmd file was not present for our .o_shipped files. This appears to be important in kernel 5.8 onwards and my fix was to add a touch command to the Kbuild file (i.e. "touch .driver.o.cmd"). This does not remove the warning but it allows the driver to build as normal.
I am trying to build a Linux kernel version rpi-4.14 for Raspberry Pi on Linux system.
The build is done with cross compiler arm-linux-gnueabihf with the configuration bcm2709_defconfig.
I'm running the command:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
But I get the following error:
arch/arm/boot/dts/overlays/midi-uart0-overlay.dts:4:39: fatal error: dt-bindings/clock/bcm2835.h: No such file or directory
compilation terminated.
scripts/Makefile.lib:328: recipe for target 'arch/arm/boot/dts/overlays/midi-uart0.dtbo' failed
make[2]: *** [arch/arm/boot/dts/overlays/midi-uart0.dtbo] Error 1
scripts/Makefile.build:587: recipe for target 'arch/arm/boot/dts/overlays' failed
make[1]: *** [arch/arm/boot/dts/overlays] Error 2
arch/arm/Makefile:350: recipe for target 'dtbs' failed
make: *** [dtbs] Error 2
The file dt-bindings/clock/bcm2835.h is in place, so I do not really know what the problem is.
The error is telling you that there is a file missing.
arch/arm/boot/dts/overlays/midi-uart0-overlay.dts:4:39: fatal error: dt-bindings/clock/bcm2835.h: No such file or directory
Check if the directory exists, look for the file you need and change the directory in the Makefile.
In my case it was an erroneous symbolic link under arch/arm/boot/dts/include. The kernel sources have been packed/unpacked by 7z, maybe that was an issue.
Solved it via
ln -s ~/kernel-building/linux-raspberrypi-kernel_1.20170703-2/include/dt-bindings arch/arm/boot/dts/include/dt-bindings
Trying to link in relative to the current directory did not work.
I'm working on a Linux machine (debian) 64bit and created a simple project involving JNI. The program is running fine on Linux with the created Java project and the compiled .so file. The goal now is to compile the C++ part of the project into a .dll instead of a .so to get it to run on Windows machines.
I read some forums and some articles like this one Article, but all of those articles were about compiling from console and also didn't involve the necessary JNI includes.
I also downloaded the cross-compiler from the given article and tried to get it to run in Netbeans. Therefore I set up another C/C++ Tool Collection in Netbeans and told it to use the x86_64-w64-mingw32-gcc compiler for both C and C++. But Netbeans is giving me some errors compiling the file, telling me the x86_64-w64-mingw32-gcc compiler could not be found which is quite random I think because I selected it from the file chooser. Did any of you do something like this already, building a .ddl from Netbeans running on Linux? If yes, how did you get it to work?
x86_64-w64-mingw32-gcc: not found
bproject/Makefile-Debug.mk:66: recipe for target 'build/Debug/GNU_1-Linux-x86/WrapperCpp.o' failed
make[2]: *** [build/Debug/GNU_1-Linux-x86/WrapperCpp.o] Error 127
make[2]: Leaving directory
nbproject/Makefile-Debug.mk:59: recipe for target '.build-conf' failed
make[1]: *** [.build-conf] Error 2
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make: *** [.build-impl] Error 2
#Edit: I'm a step further now: I installed the correct mingw32 tools: sudo apt-get install mingw32. The programm does now compile without errors using the i586-mingw32msvc-g++ compiler but it still results in a .so instead of a .dll. I guess it has something to do with the make command but I haven't found anything about that yet.
I am completely new to this. I have a C program which compiles fine and runs fine on linux. I want to run the same code on a Windows machine so I am using the cross compiler Mingw. However every time i try and build the project i get this error:
14:51:21 **** Incremental Build of configuration Default for project zbar-0.10 ****
make all
make all-am
make[1]: Entering directory `D:/zbar-0.10'
! was unexpected at this time.
make[1]: *** [include/config.h] Error 255
make[1]: Leaving directory `D:/zbar-0.10'
make: *** [all] Error 2
14:51:26 Build Finished (took 4s.493ms)
I have googled around and still do not understand why i am getting it. Any advice?
Build with exact versions of tools as specified in: http://sourceforge.net/apps/mediawiki/zbar/index.php?title=HOWTO:_Compile_with_MinGW_in_Windows
The code is old and the make will break with newer versions.