Topic identifier not declared in any header file

This forum is for all Flare issues related to the Microsoft HTML Help target.
This target produces "CHM" files in the output.
Post Reply
Brian Howe
Jr. Propeller Head
Posts: 3
Joined: Mon Feb 26, 2007 8:52 am
Location: Ft. Walton Beach, Florida

Topic identifier not declared in any header file

Post by Brian Howe »

Can someone help me figure out how to clear these errors? They are in the Complier: Alias subsystem. When I compile the project, I get a bunch of these error messages. The project was originally created in RH and I suspect these topics were incorrectly removed from the RH project (they do not exist in my current project).
Brian
KevinDAmery
Propellus Maximus
Posts: 1985
Joined: Tue Jan 23, 2007 8:18 am
Location: Darn, I knew I was around here somewhere...

Post by KevinDAmery »

My guess is the topic files were removed, but the entries weren't removed from the alias. Open the alias editor and make sure that the topics the errors refer to aren't in there--if they are, remove those entries.
Until next time....
Image
Kevin Amery
Certified MAD for Flare
Brian Howe
Jr. Propeller Head
Posts: 3
Joined: Mon Feb 26, 2007 8:52 am
Location: Ft. Walton Beach, Florida

Post by Brian Howe »

The entries were removed from the alias - at least they aren't in my project. I've tried recreating them and redeleting in hopes it would solve the problem, but no. These topics do not exist anywhere in the project...at least from what I can see.
Brian
carolynmwallace
Sr. Propeller Head
Posts: 168
Joined: Thu Jan 31, 2008 12:21 pm
Location: Durham, NC

Re: Topic identifier not declared in any header file

Post by carolynmwallace »

This was driving me crazy too--I couldn't find the missing topic identifiers ANYWHERE...until I ran RoboHelp's Topic References report on the project I had tried to import to Flare. Eureka!

The situation in my case was that there were map IDs that had been created in RoboHelp, but then deleted OUTSIDE RoboHelp. There were only two ways to see these "phantom" map IDs--in the RoboHelp "Topic Reference" Report and in the "Assigned Map IDs" section of the "Topic Properties" dialog (Advanced tab) for the specific topic with the bad reference.

Once I recreated the problem ID, I could then delete it, and the RoboHelp topic would no longer list it as an "Assigned Map ID." After that, I re-imported the project into Flare and got it to compile without the "Topic identifier not declared" error.
Brian Howe
Jr. Propeller Head
Posts: 3
Joined: Mon Feb 26, 2007 8:52 am
Location: Ft. Walton Beach, Florida

Re: Topic identifier not declared in any header file

Post by Brian Howe »

Most of my project was created in RoboHelp. What can I do if I don't have RoboHelp?
Also, I had two header Files; one from RH and one from Flare. I combined the two into the Flare header file, but when I build the project, the RH header file reappears and the changes I made to the Flare header file are gone (put back as part of RH header file). Comments?
Brian
carolynmwallace
Sr. Propeller Head
Posts: 168
Joined: Thu Jan 31, 2008 12:21 pm
Location: Durham, NC

Re: Topic identifier not declared in any header file

Post by carolynmwallace »

Sorry, Brian - just saw your post. I'm not sure what to tell you, as I don't know where the map ID info is hidden. It's got to be somewhere other than the Header files for it to repopulate itself, right? Maybe it's in the code of the topics themselves?
wclass
Propellus Maximus
Posts: 1238
Joined: Mon Feb 27, 2006 5:56 am
Location: Melbourne, Australia

Re: Topic identifier not declared in any header file

Post by wclass »

You can do this manually, but make sure you backup etc.

In Flare, open up your alias file using the Internal Text Editor (right-click on the alias to get this).
Then search for the ID that is causing the error, and delete the whole line - from <Map Name=xxx ... />

When items get removed from the header.h file outside of Flare, Flare doesn't know to remove them from the Alias (.flali) file and you have to do it manually. When Flare opens the Alias it only lists the alias entries that it can find a match for in the header. It would be nice of Flare to report a missing reference here instead of waiting for the compile.
Margaret Hassall - Melbourne
johnp
Jr. Propeller Head
Posts: 5
Joined: Tue Jan 29, 2008 8:48 am

Re: Topic identifier not declared in any header file

Post by johnp »

I am having a problem similar to Brian's. Most of my project was also created in Robohelp (which I do not have access to) and then imported into Flare. When I build my target, I am getting the "Topic identifier [topic name] not declared in any header file" error message for only one of the 100 or so topics in the project. The .chm seems to work fine, including the topic in question.

The topic identifier is listed when I open the alias file, and is also in the header file. I have tried to manually delete the identifier from the header and create a new ID, assigning it to the appropriate topic, but when I build the target, I still get the error message. Any suggestions?
wclass
Propellus Maximus
Posts: 1238
Joined: Mon Feb 27, 2006 5:56 am
Location: Melbourne, Australia

Re: Topic identifier not declared in any header file

Post by wclass »

I can't spot a reason for the problem straight off, but this is what I would do to trouble-shoot:

0. First, make a backup.

1. Now, clean your output - a lot of temp files are created during the CHM compile , and old aliases may be getting in the way.

2. Open the .FLALI and .H files with a text editor of your choice. Search for ALL occurrences of the problem identifer and delete the rows. I'd also check in the alias file if there are other references to your topic name as well - you should be able to have the topic linked in more than once, so no need for deleting, just make sure you know what is there. You might have a reference to an old identifer that was misspelled or something.

3. Get back into Flare
a. and open your alias file in the GUI.
b. Make sure the correct .H file is listed at the top - by default it says (all identifiers) - choose the .H file even if you have only one.
c. Click "New Identifer" down the bottom and create your problem identifer - a unique number is assigned.
d. Select the right topic and click Assign.
e. Save

4. Now try recompiling.

If you are still having problems, I'd try a bit of research.
Check the temporary files in the output folder for the _Temp.ali file - this is what Flare builds for input to the CHM compiler. Open it with a text editor and check if your problem topic identifer and assigned topic are in there - are they in there more than once? This just might give an idea of where the problem is. You will see a lot of madcap identifers - they don't SEEM to cause any problems, but if they are not getting cleared properly, who knows.
Margaret Hassall - Melbourne
johnp
Jr. Propeller Head
Posts: 5
Joined: Tue Jan 29, 2008 8:48 am

Re: Topic identifier not declared in any header file

Post by johnp »

wclass,
Great advice! It compiles perfectly now. Turns out the header file was fine--it was the alias file that contained an extra line with the extraneous Map Name. I was unable to see it when I opened the .flali in Flare, but viewing it through the text editor, it stuck out like a sore thumb. I deleted the line and no longer get the error message. Thanks alot!
tylerc
Propeller Head
Posts: 18
Joined: Wed Oct 31, 2007 10:54 am
Location: San Diego, California

Re: Topic identifier not declared in any header file

Post by tylerc »

Great troubleshooting instructions!
As soon as I opened the alias file in text editor - there was the problem!
And adding the identifeir back in and re-assigning fixed the error! :D
Post Reply