Console program link error

Post general discussions on using our drivers to write your own software here
Post Reply
arthurian

Console program link error

Post by arthurian »

Console program in Microsoft C++, version 4.2, Win98. ADC11/12

From www.picotech.com I downloaded the software drivers and tried to use the instructions to build the console application as a starting point to develop some software. Hence I created a project workspace and added the file adc11con.c and the library adc11ms.lib. The program compiled although it gave 10 warnings about:
…function conversion from const integer to unsigned short and integral size mismatch in arguments, conversion supplied.

Then when I tired to build an executable it came back with a fatal error: LNK1106 invalid file or disk full, cannot seek to Ox3d47981a.

There is over 450 megabytes free on the disk. Does anyone know how to get around this problem?

User avatar
matthew
Advanced User
Advanced User
Posts: 109
Joined: Wed Sep 25, 2002 9:35 am
Location: Cambridgeshire, UK

Post by matthew »

Hi,

I'm afraid I've not encountered this error before, perhaps someone else on the forum will have seen it?
Have you looked up the error on the MSDN? I often find that this helps.

http://msdn.microsoft.com/library/defau ... nk1106.asp
I used the 'LNK1106' text to find the above link.

PS - 450 Megabytes is quite low, check out your system monitor (your system may be using a lot of virtual memory).

Best Regards,
Matt Everett

Pico Software Engineer

arthurian

Post by arthurian »

Hello Matt,

The link error remains. I have cured all the warnings and the program compiles but when I try to link I get the following referring to the library that I can’t look at

Linking...
\Pico\Drivers\win32\ADC11ms.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x3d47981a
Error executing link.exe.
adc11con.exe - 1 error(s), 0 warning(s)

The help file off the C++ 4.2 CD notes and the web link also gives the same information:
-------------------------------------------------------------------------------------------------------
invalid file or disk full: cannot seek to location
The tool could not read or write to location in a memory-mapped file.
Tips
· Your disk may be too full to complete the link. Free up some space and try the link again.
· The error may be a result of trying to link over a network. Some networks do not fully support the memory-mapped files used by the linker. Try linking on your local disk to see if that fixes the problem.
· There may be a bad block on your disk. Although the operating system and disk hardware should have detected such an error, you may want to run a disk checking program.


I am not running over a network

Scan disk doesnt report any errors.

Although 450 megabytes may not be large by current standards its 25% of the 2 gigabyte disk on my laptop.

But what number is 0x3d47981a? What does the x mean? Clueless here. If the 3d47981a is in hex it has the decimal equivalent 1028102170, but is this of any relevance?

Is it possible that the adc11ms.lib needs a more advanced C++ than 4.2? If so are there any earlier versions of the library about?

Several hours of trying various things have not taken me past this point. Does any one have a suggestion of a way forward?

User avatar
matthew
Advanced User
Advanced User
Posts: 109
Joined: Wed Sep 25, 2002 9:35 am
Location: Cambridgeshire, UK

Post by matthew »

Hi again,

I'm afraid I'm not an expert on compiler warnings, you're probably better off talking to Microsoft. One of the customers on the forum may know the answer ... but you are far more likely to get a response on a specific C++ forum (there's plenty around).

The only thing I can suggest is to run a full surface scan using scan disk, if you haven't already done this (you'll know if you have because this take a VERY long time). Also, a defrag might free up some space. Incidentally, an 8 digit number on a PC beginning with 0x is nearly always a 32-bit hexadecimal memory address.

Best Regards,
Matt Everett

Pico Software Engineer

arthurian

Post by arthurian »

Hello Matt,

Thanks for your reply. Although my laptop didn’t have any scan disk errors to be sure I tried an older win95 machine and got the same link error.

Quite bizarre as I am clueless as to why the link would want to write to a specific address and even if it does why it can’t find it on two different machines. Strange. Even more wild to me is that the failing link address can be changed by commenting out some of the PICO specific commands in the C.

Sort of feel I must be doing something wrong, even though I feel I am following the instructions. Still software and strange things are not unknown. Maybe I will try to write the code in one of the other options.

Thanks for your help,

Post Reply