I am getting this message now :
"Unit ExtActns was compiled with a different version of UrlMin.IBindStatusCallBack"
when i try to compile two old projects of mine in Delphi 7 on a new machine:
I have checked and double checked that the library paths are indentical on the current machine they are compiling on and the new machine i have set up.
Anyone know what is going on?
Thanks
What that usually means is that there's something in UrlMin.dcu that's not compatible with ExtActns, but the compiler can't find UrlMin.pas to recompile it. Check your IDE paths to make sure it can find the UrlMin unit.
Turns out, it must have been an issue with Rad Studio 2010 installed. I uninstalled it, cleaned the registry and system variable paths of all instances of Rad Studio.......and everything compiles fine now!
Related
RAD Studio 10.4.2 C++Builder running on Windows 10 Pro 64-bit PC. Target VCL Win64 (ie Clang64 compiler).
I have a large C++ project that is under development using VCL Clang64. I am compiling using static linking of all RTL libraries and all installed component packages.
It was compiling and running OK before. I've added some new stuff, and now it compiles and links without reporting any errors, but when I run it I get an error box and the application doesn't run (doesn't even start up). The error box says.
Error reading OKBitBtn.Kind: Resource BBOK not found
I have used Notepad++ "find in files" to search all directories for a file containing BBOK, but it says "none found".
If I compile with the "Use runtime packages" project option enabled, I get an AV when I try to run the EXE file.
If I compile and link using Clang32 (target = Win32) with static linking, it runs ok - no sign of any errors (but I need a 64-bit application to interface to my PostgreSQL database using FireDAC, so this experiment won't talk to the database, as expected).
I am at a loss as to what can cause this error, and what debugging steps I should take to track it down and solve it.
(thanks to Remy for making edit improvements to my mquestion)
Thanks to help from David Millington and Miguel Moreno (provided by skype conversation I now have the solution:
I have some of my own VCL components that are written in C++ (and work with the classic compiler). I had these de-selected in the "installed packages" list - but they were still listed (with empty check boxes). I know that RAD studio 10.4.2 (and earlier) does not work well with VCL components written in C++ and compiled with clang32 or clang64 compilers.
If I "remove" these components from the list then the problem is solved. At this point I have no idea why this happens.
This is a bit of a pain as it means swapping from projects that use the components with classic compiler (many) to the big project I am spending a lot of time on is not convenient. However it is an acceptable workaround. I am hoping that this issue will be fixed in the coming RAD Studio 11 version.
I've just installed Delphi 10.1 Berlin, and I've run into a problem with the library path. When using units in the library path (at least some), Delphi can't find them , and gives an F2613-error, "Unit XXX not found".
To set up a very simple test, I created a unit called "SampleUnit.pas", with a single function (sum) in it, put the file in a newly created folder, "C:\TempLibrary", and added this folder to Options->Delphi Options->Library->Library path. I checked the spelling several times, and I am totally sure that everything is correct. I then made a console application like this
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SampleUnit;
begin
writeln(Sum(12,13));
end.
and compiled it. Boom, "[dcc32 Fatal Error] Project1.dpr(9): F2613 Unit 'SampleUnit' not found."
If I replace the offending line with
uses
SampleUnit in 'c:\templibrary\sampleunit.pas';
it works just fine. Adding "C:\TempLibrary" to the projects search path will also solve the problem.
What am I missing? This has worked on previous versions of Delphi, and it does indeed work on other installations of the Berlin version as well (I have another installation on a virtual machine, where it works just fine)
I realize this might be a problem with my setup that may be hard/impossible for others to pinpoint, but if anyone can offer any insight as to where I should look that would be great.
UPDATE:
The problem has been solved, but I'm not sure excactly what solved it. I started a reinstall, and got a warning that said the length of my system path was close to the length limit. I cleaned the system path (removed references to old RAD studio installs among other things), then reinstalled Delphi 10.1 Berlin, and now everything works again.
It seems the problem was the length of my system path. I shortened it by removing references to earlier Delphi versions and some other obsolete stuff and reinstalled Delphi, and now everything works as before.
PS: After shortening my system path, I tried to build my test project before reinstalling Delphi, but that didn't work. Maybe something went wrong during the install, which may or may not have been caused by the length of the system path. I can't say with absolute certainty that it was the system path that caused the problem, but it seems the most likely candidate.
I have developed a Delphi application (XE4) on a Windows XP machine.
When I copy all the project files to a Win 7 machine (also Delphi XE4) it will not compile.
The source has uses Vcl.Grids and the compiler complains it can't find vcl.grids.dcu.
Changing to uses grids works but I don't want to edit all the source.
I've checked the Embarcadero website for information on Namespaces but couldn't find anything useful.
I know it's possible to say uses vcl.grids under Win 7 so there must be some setting somewhere in the project that is preventing the resolution.
I've tried deleting the dproj files but that had no effect.
How do I get the source to compile with minimal changes?
The error has nothing to do with OS. It means your IDE/Projects's search paths are not configured correctly, or your project is missing references to the relevant packages, so double check that.
Also, you can use uses Grids in the code, and then make sure Vcl is listed in the Unit scope names field in the Project Options.
The information that you describe seems to be erroneous. The compiler is not affected by the operating system on which it runs. Running the same compiler on the same source code on a different operating system does not result in compiler errors.
Here are the reasonable explanations for your problem:
You are compiling the code on different versions of the compiler. Your error message matches what happens when you compile modern namespace aware code on XE or earlier.
Your are not compiling the same source code on both machines.
It is extremely hard to see beyond these two explanations.
Ok, red face time. Turns out I was running an earlier version of Delphi on the Win 7 machine. Delphi XE4 was installed along with an earlier version and I was invoking the earlier version.
Once I actually brought up XE4 on the Win 7 machine the issue vanished.
So I will don a hair shirt and crawl under my rock.
Thanks everyone who contributed.
I just purchased the full version of Delphi XE Architect after using the trial version for 30 days. I can't build anything, every time I go to build a project I get the error.
[DCC Fatal Error] MegaMainPrj.dpr(1): F1027 Unit not found: 'System.pas' or binary equivalents (.dcu)
A quick google said that the library paths were a problem and I compared what was given (in a previous stackoverflow question) with what I had in the registry, and it was identical.
What could be causing this?
EDIT: Immediatly after I get this error message the entire IDE crashes.
add this :
$(BDSLIB)\win32\release;
to your library path .
Make sure you have the environmental variables set properly (Tools->Options->Environmental Variables from the IDE's main menu):
BDS=D:\Embarcadero\RAD Studio\8.0
BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\8.0
PLATFORM=Win32
These should all be set in the System Variables section, and should have been added by the installer. (Obviously, they should point to the installation location of your XE installation - mine is installed in D:\Embarcadero\RAD Studio\8.0, as you can see.)
EDIT: I see in your comment you installed in C:\Program Files - bad idea if you're running Windows Vista or Win7 or higher. You should try installing in a different location. You can also try running the IDE as Administrator (right-click shortcut in Start->All Programs->Embarcadero->RAD Studio XE->Delphi XE, choose "Run as Administrator" from context menu). Does this change anything?
Also, you can open a free support case at Embarcadero for installation-related issues. I'd first try reinstalling in another location (running the install as Administrator, putting it in another folder, and installing for all users); if that doesn't work, open a support case. You can also post to the Embarcadero Delphi Installation forums - you'll need to have already created a user account there first to log in.
C:\Embarcadero\RAD Studio\9.0\lib\win32\release
and
C:\Embarcadero\RAD Studio\9.0\lib\win32\debug
Both of these path have been to add in Delphi XE2 from IDE <<Tools->Options->Library->Library path>>
It's OK?
Goto Tools->Options->Library->Library path
and add $(BDSLIB)\win32\release
This worked in Delphi 10.2
When compiling using the command line compiler, so not from within the IDE, you can also get this error when the name of the build configuration is not "debug" and not "release".
It seems that, when using the command line compiler, it tries to find its dcus in a path under BDSLIB that it constructs using the configuration name.
I had this happening when using a configuration named ReleaseHA. Note: it was not a sub configuration under "release", but an extra configuration besides "debug" and "release".
Sometimes this error message occurs when we have duplicate libraries included.
Make sure that:
Tools->Options->Environmental Options->Library
and
Project->Options->Directories/Conditionals
Don't include the same paths...
Running as Administrator worked for me.
I created a project in Delphi 7, How to save the project with all packages, to be ready to use on other computers that do not have installed by default those packages. Maybe somebody knows a good tutorial. Sorry for the question if I formulated it incorrect.
Sorry, but that is not how Delphi works. Packages are separate from projects that use them. There is no way to tell the IDE to save them all together. You will have to deploy the packages themselves onto the other computer and install them into the IDE before you can then open any projects that use the packages.
To run the build application in Delphi 7 on another computer you only need to copy the exe to that other computer. There is no need to collect packages, the Delphi compiler creates an executable that works standalone.
If you used a ClientDataSet than make sure that in your source you have incluced MidasLib in your uses, if you do not than you have to supply Midas.dll also.
That should be all.
If this does not works, than tell us what error message you get when running the built application on the other computer.