AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
30.09.20 - 16:16:00
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  C-API - Codeblocks - main entry point
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: C-API - Codeblocks - main entry point  (Gelesen 766 mal)
SteffenKaPunkt
Frischling
*
Offline Offline

Beiträge: 23


« 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
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11460


« Antworten #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
Gespeichert
SteffenKaPunkt
Frischling
*
Offline Offline

Beiträge: 23


« Antworten #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
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11460


« Antworten #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.
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11460


« Antworten #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.

Gespeichert
SteffenKaPunkt
Frischling
*
Offline Offline

Beiträge: 23


« Antworten #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'|
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11460


« Antworten #6 am: 15.07.20 - 18:19:46 »

Du musst auch die notes.lib linken
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11460


« Antworten #7 am: 15.07.20 - 18:28:31 »

Auf welchem OS machst Du das Ganze? Weil GCC und win64. Finde den Fehler
Gespeichert
SteffenKaPunkt
Frischling
*
Offline Offline

Beiträge: 23


« Antworten #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.
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11460


« Antworten #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.
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: