Autor Thema: C-API - Codeblocks - main entry point  (Gelesen 3981 mal)

Offline SteffenKaPunkt

  • Frischling
  • *
  • Beiträge: 25
C-API - Codeblocks - main entry point
« am: 15.07.20 - 15:21:31 »
Hallo Leute,

ich versuche mittels Codeblocks bei einer C-Anwendung den Mein-Entry-Point auf "AddInMain" zu setzen. Hat da jemand Erfahrung, wie dies geschieht? Also Standard-Compilter wird dort der gcc genutzt.

Viele Grüße

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: C-API - Codeblocks - main entry point
« Antwort #1 am: 15.07.20 - 16:46:56 »
Code
STATUS LNPUBLIC AddInMain ( HMODULE hModule, int argc, char *argv[])

Du musst aber dann auch die entsprechenden obj libs linken, und min. addin.h includen
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline SteffenKaPunkt

  • Frischling
  • *
  • Beiträge: 25
Re: C-API - Codeblocks - main entry point
« Antwort #2 am: 15.07.20 - 18:04:37 »
Hallo Ulrich,

dass mit der addin.h hatte ich bereits erledigt. Jedoch bin ich mir nicht sicher, ob notes0.obj oder notesai0.obj mit gelinkt werden muss. Und wo um alles in der Welt hinterlege ich die notesxx0.obj in CodeBlocks?

Viele Grüße

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: C-API - Codeblocks - main entry point
« Antwort #3 am: 15.07.20 - 18:08:19 »
Du musst beide files linken.
Unterstützt codeblocks keine make files?

Wenn darunter ein gcc liebt, dann kannst du doch make files verwenden. Die sind ja fertig in den samples.

Ich selber verwende boost build.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: C-API - Codeblocks - main entry point
« Antwort #4 am: 15.07.20 - 18:12:46 »
Mal schnell Tante Googe befragt

Zitat
1. Choose Project, Build Options.

The Project Build Options dialog box appears.

2. Click the Linker Settings tab.
3. Click the Add button.
4. In Add Library dialog box, click the Ellipsis (…) button to browse to the location of the library file.

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline SteffenKaPunkt

  • Frischling
  • *
  • Beiträge: 25
Re: C-API - Codeblocks - main entry point
« Antwort #5 am: 15.07.20 - 18:18:29 »
Wenn ich die beiden .-obj-Files in den Linker-Settings eintrage und den Rebuild anstoße erhalte ich diese Meldungen:

D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0x2b)||undefined reference to `NotesInitExtended'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0x46)||undefined reference to `NotesSDKMAINInitError'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0xaf)||undefined reference to `NotesSDKMAINCommandLineBegin'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0xca)||undefined reference to `NotesSDKMAINInitError'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0xf9)||undefined reference to `NotesTerm'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0x112)||undefined reference to `NotesTerm'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0x13c)||undefined reference to `NotesSDKMAINInit'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0x17d)||undefined reference to `NotesSDKMAINError'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0x1c7)||undefined reference to `NotesSDKMAINCommandLineEnd'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[notes_main]+0x1cc)||undefined reference to `NotesTerm'|
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[WinMain]+0x25)||undefined reference to `NotesSDKMAINParseArgs'|
D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj:(.text[NotesMain]+0x10)||undefined reference to `AddInSDKInit'|
D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj:(.text[NotesMain]+0x24)||undefined reference to `NotesInitModule'|
D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj:(.text[NotesMain]+0x3b)||undefined reference to `AddInSDKTerm'|

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: C-API - Codeblocks - main entry point
« Antwort #6 am: 15.07.20 - 18:19:46 »
Du musst auch die notes.lib linken
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: C-API - Codeblocks - main entry point
« Antwort #7 am: 15.07.20 - 18:28:31 »
Auf welchem OS machst Du das Ganze? Weil GCC und win64. Finde den Fehler
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline SteffenKaPunkt

  • Frischling
  • *
  • Beiträge: 25
Re: C-API - Codeblocks - main entry point
« Antwort #8 am: 15.07.20 - 18:31:56 »
Die lib ist mit angegeben. Ich glaube ich habe einen ersten Teilerfolg. Ich hatte die obj-Files nicht bei den Linker-Settings für das Release angegeben, sondern eine Ebene drüber.

Dennoch erhalte ich vom Linker einen Fehler zurück (siehe letzte Zeile).

g++.exe -Os -fexceptions -Os -ID:\_entwicklung\notesapi901\include -ID:\_entwicklung\notesapi901\lib -c C:\_entwicklung\CodeBlocks\TestCodeblocks\main.cpp -o obj\Release\main.o
g++.exe -LD:\_entwicklung\notesapi853\lib\mswin64 -o bin\Release\TestCodeblocks.exe obj\Release\main.o  -s -static  D:\_entwicklung\notesapi901\lib\mswin64\notes.lib D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj D:\_entwicklung\notesapi901\lib\mswin64\notes.lib D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj
D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj:(.text[NotesMain]+0x0): multiple definition of `NotesMain'
D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj:(.text[NotesMain]+0x0): first defined here
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[main]+0x0): multiple definition of `main'
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[main]+0x0): first defined here
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[WinMain]+0x0): multiple definition of `WinMain'
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj:(.text[WinMain]+0x0): first defined here
collect2.exe: error: ld returned 1 exit status


Folgende Reihenfolge bei den Linker-Settings habe ich verwendet:

D:\_entwicklung\notesapi901\lib\mswin64\notes.lib
D:\_entwicklung\notesapi901\lib\mswin64\notesai0.obj
D:\_entwicklung\notesapi901\lib\mswin64\notes0.obj


PS: CodeBlocks 20.04 ist standardmäßig auf 64bit gestellt.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: C-API - Codeblocks - main entry point
« Antwort #9 am: 15.07.20 - 18:40:07 »
Ich denke, du solltest noch einmal Deine Entwicklungsumgebung überdenken. Was Du verwendest ist alles andere als Standard und weit entfernt von supported.
Ich kenne niemanden, der mit einem GCC ein lauffähiges binary für Windooze gebaut hat.

Für 9.0.1 + ist VS 2010 angesagt. Unter Linux, GCC. Beim OS muss man dann aber schon wieder differenzieren, für welche Domino Version man das bauen möchte.

Steht aber Alles in der Anleitung zur cAPI SDK.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz