Wieso kann in C++ eine durch #include eingebundene Datei nicht geöffnet werden?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Teil 1: Header einbinden, um die Klassen und Funktionen aufrufen zu können:

#include "wincodec.h"

Jetzt kann der Code compiliert werden (⇒ .obj oder .o). Allerdings wird danach der Linker meckern, weil er die verwendeten Objekte nirgends findet. Die stehen nämlich in einer oder mehreren Bibliotheken (.lib, .dll, .so).

Teil 2: Bibliothek(en) angeben:

#pragma comment(lib,"wincodec.lib")

Sinnvoller und robuster ist es aber, die Bibliothek in Deinem Projekt (irgendwo bei den Linker-Einstellungen) einzutragen. Es kann nämlich durchaus sein, dass Du verschiedene Bibliotheken für Debug/Release und 32/64bit hast. Die heißen dann z.B. "wincodec-0.10.3-32d.lib" oder schlimmer. Das #pragma wäre damit überfordert. Außerdem musst Du vermutlich noch angeben, in welchem Verzeichnis die Bibliotheken liegen.

Die verwendete Syntax erscheint sinnlos, das include lässt sich besser in den Properties unterbringen und es fehlen sämtliche Angaben, in welchen Verzeichnissen der Linker die Dateien sucht. Zudem ist eine h-Datei KEINE Bibliothek.

Visual Studio 2015 Community Version - #include <stdio.h> nicht gefunden - Library installieren?

Hallo, ich möchte in Visual Studio 2015 Community Editon in C programieren. Dafür habe ich eine *.cpp Datei erstellt und die Endung auf *.c geändert. Nun möchte ich eine simple Textausgabe erzeugen. Mein Quellcode ist wie folgt:

include <stdio.h>

void main() {

printf("\nDies ist ein erstes C-Programm. \n"); }

Es werden allerdings folgende Fehlermeldung angezeigt:

  • Die Datei "Quelle" kann nicht geöffnet werden: "stdio.h".
  • Fehler C1083 Datei (Include) kann nicht geöffnet werden: "stdio.h":

Vermutung: die benötigte Library stdio.h ist nicht auf dem Computer hinterlegt.

Vielen Dank im Voraus.

...zur Frage

C++ Die Datei "Quelle" kann nicht geöffnet werden string.h?

ich habe visual Studio nun 3 mal deinstalliert und installiert. anfangs vor ein paar Wochen ging es noch, und jetzt geht es einfach nicht mehr. er findet die Bibliothek nicht? was kann ich tun? ich brauche die Funktion strcopy die nur über #include <string.h> aufrufbar ist..

...zur Frage

C++: nicht definierter Verweis?

Templates.hpp

#ifndef TEMPLATES#define TEMPLATESnamespace templates{   template<class T>void set(T&, T);   template<class T>T get(T);}#endif

Templates.cpp

#include"Templates.hpp"namespace templates{   template<class T>void set(T &variable, T value)   {      variable=value;   }   template<class T>T get(T variable)   {      return variable;   }}

Test.cpp

#include<iostream>#include"Templates.hpp"namespace Test{   class CTest   {         int Test;      public:         CTest();         int Testfkt() const;   };}int main(){   Test::CTest Test;}namespace Test{   int CTest::Testfkt() const   {      return this->Test;   }   CTest::CTest()   {      templates::set<int>(this->Test, 10);   }}

Vom linker erhalte ich dann "Nicht definierter Verweis auf 'void templates::set<int>(int&, int)'

Was ist da falsch?

Einen schönen Dank schon mal. Stehe auf dem Schlauch.

...zur Frage

C++ Array umgekehrt ausgeben

Wie gebe ich diesen Array umgekehrt aus ? Also Es soll mit 15 anfangen und mit 1 aufhören.

include

include

int main(){

int Zahlen[15]; int i;

cout << "Tabelle mit 15 Zufallszahlen" << endl; cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;

for(i=0 ; i<15 ; i++){ Zahlen[i] = rand(); cout << "Zahl Nummer " << i+1 << ": " << Zahlen[i] << endl; }

getchar(); return 0; }

...zur Frage

Struct dem Unterprogramm übergeben in C?

Hallo, ich möchte im Unterprogramm meinen Struct ausgeben , weiß aber nicht was ich in die klammern schreiben soll bzw wie ich das programm zum laufen birnge. Ohne unterprogramm funktioniert alles. LG ALina

include

include

include

//bekommt pointer übergeben und gibt zeilen aus

int print_student(Student *Person){

printf("%s", (*Person).vorname);

return 0;

}

typedef struct Student {

int Matrikelnummer;

char *vorname;

char *nachname;

}Student;

int main(){

Student *Person;

Person = (Student *) malloc (sizeof(Student));

(*Person).vorname = "Max";

(*Person).nachname = "Mustermann";

(*Person).Matrikelnummer =123456;

print_student(&Student *Person);

return 0;

}

...zur Frage

Was möchtest Du wissen?