Wenn es geht, wird Dir das Toolset in VS-2015 angezeigt. Wenn ich mich nicht irre ging das aber nur mit VS-2010.
Aber in der Theorie kannst Du die Environment Variablen ändern oder die Dateien tauschen...
Nein. Die C-Runtime enthält keine .NET Runtime und umgekehrt.
Schau mal hier. Neue IDE mit alten Compilern haben schon andere versucht...
https://www.speedproject.de/neue-ide-mit-altem-compiler/
Deine SetDLLDirectories und DLL search path haben damit gar nichts zu tun.
Grundsätzlich:
Wenn Du Code zusammenstellst mit dem Linker und Du bindest andere Libraries ein, dann sollten die (sofern Sie kein reines POD Interface besitzen) immer mit den gleichen Einstellungen kompiliert werden wie die EXE.
Ansonsten gibt es üble Effekte was freigeben von Speicher etc. betrifft.
Also jede OBJ Datei, die Du einbindest muss mit den gleichen CRT Einstellungen kompiliert werden. Das gilt auch für Debug / Non-Debug Einstellungen...
Aber wenn Dein Projekt aus mehreren DLLs besteht, würde ich nicht statisch linken! Dann hast Du sowieso einen Installer.
Also was interessiert Dich ob eine CRT noch mit installiert werden muss?
Was ist eigentlich Dein Problem?
@manni66
@manni66 sagte in Visual Studio Community 2017 - überladene Funktion auswählen:
Gehe ich recht der Annahme, dass "::" die Funktion bind() vom namespace "std" wieder befreit?
Man könnte es so formulieren. Es besagt, dass die Funktion nicht in einem Namespace zu finden ist (oder auch im sogenannten globalen Namespace).
Deutlich besser formuliert als meine "Vermutung".
Danke!
Das dürfte die default Einstellung für neue Projekte sein.
Im Grunde muss man in jeder cpp dann als erstes stdafx.h inkludieren, oder eben precompiled header deaktivieren.
@manni66 sagte in callgrind mit Qt-GUI:
@unterfliege sagte in callgrind mit Qt-GUI:
Ich ging aber ehrlich gesagt davon
Davon geht man nicht aus. Man muss wissen was man da tut.
Es gibt stets unterliegende Dinge, auf die du dich verlässt. Geht dir nicht anders. Und es ist nebenbei bemerkt genau so, wie ich sagte.
Das Problem hat sich übrigens erledigt, war ein Bug.
Der Fix war allerdings offensichtlich noch nicht im offiziellen Arch-Repo, vermutlich weil die Version immer noch die gleiche Nummer trägt (weiterhin 3.14.0). Selbst kompiliert und alles funktioniert wie es soll.
Wenn Deine statische Bibliothek eine andere statische Bibliothek benutzt ist der Weg den yahendrik vorschlägt das beste was Du machen kannst.
Damit erübrigt sich zumindest die Linker Seite anzupassen was die Bibliotheken betrifft. Du musst dann nur noch dafür sorgen, dass die Pfade dem Linker bekannt sind.
@timb Hey Tim, du bist echt Blind und schreibst Programme ? Das ist ja sehr lobenswert, ich hatte früher auch in der Familie mit der Blindheit zu tun, und seither versuche ich den Maschinen das sehen beizubringen, nach 40 Jahren mit mäßigem Erfolg, das problem aller Maschinen ist, es ist niemand zuhause. Es wird der Tag kommen an dem dort ein Licht aufgeht. Vielleicht wird dann das sehen nicht mehr so wichtig wiegen. Also wenn Du Dir was vorstellen kannst was noch fehlt , schreib doch mal dazu etwas. Grüße aus Berlin Karsten
Hey!
Das hier scheint bei mir nun zu funktionieren. Ich verzichte ganz auf link_directories(), obwohl mich echt interessieren würde, warum das nicht funktioniert. Hier meine Lösung:
######################################################
# set SDL paths
######################################################
set(SDL_MINGW64_PATH ${CMAKE_CURRENT_LIST_DIR}/TestDir/lib/SDL/bin_lib/MinGW/x64)
set(SDL_MINGW32_PATH ${CMAKE_CURRENT_LIST_DIR}/TestDir/lib/SDL/bin_lib/MinGW/x86)
set(SDL_VC64_PATH ${CMAKE_CURRENT_LIST_DIR}/TestDir/lib/SDL/bin_lib/VisualStudio/x64)
set(SDL_VC32_PATH ${CMAKE_CURRENT_LIST_DIR}/TestDir/lib/SDL/bin_lib/VisualStudio/x86)
...
if(${ARCHITECTURE} STREQUAL ${X64})
message("\tSDL x64...")
if(MINGW)
message("\t\tlinking MinGW...")
target_link_libraries(${TARGET} PUBLIC "${SDL_MINGW64_PATH}/libSDL2.dll.a")
target_link_libraries(${TARGET} PUBLIC "${SDL_MINGW64_PATH}/libSDL2main.a")
target_link_libraries(${TARGET} PUBLIC "${SDL_MINGW64_PATH}/libSDL2_image.dll.a")
target_link_libraries(${TARGET} PUBLIC "${SDL_MINGW64_PATH}/libSDL2_mixer.dll.a")
target_link_libraries(${TARGET} PUBLIC "${SDL_MINGW64_PATH}/libSDL2_ttf.dll.a")
endif()
if(MSVC)
message("\t\tlinking Visual Studio...")
target_link_libraries(${TARGET} PUBLIC "${SDL_VC64_PATH}/SDL2.lib")
target_link_libraries(${TARGET} PUBLIC "${SDL_VC64_PATH}/SDL2main.lib")
target_link_libraries(${TARGET} PUBLIC "${SDL_VC64_PATH}/SDL2_image.lib")
target_link_libraries(${TARGET} PUBLIC "${SDL_VC64_PATH}/SDL2_mixer.lib")
target_link_libraries(${TARGET} PUBLIC "${SDL_VC64_PATH}/SDL2_ttf.lib")
endif()
else()
message("\tx64 skipped!")
endif()
Funktioniert einwandfrei
Dann hast Du aber MBCS nicht deklariert sondern Unicode.
Wenn der Compiler schon meckert, dann stimmen da die Einstellungen nicht.
Ich habe noch nie Probleme bei einem Upgrade noch so alter Projekte gehabt, außer es gab wirkliche Compiler Probleme oder Fehler im alten Code...
@martin-richter sagte in Visual Studio 2017 Enterprise extrem günstig bei eBay:
Es gibt die Schlüssel sogar auf github...
Hahahaha, ja, sogar vom CHEF-KOCH
Aha, danke
Ich fand das deswegen etwas beeindruckend, weil diese Klasse mir schon lange ein Dorn im Auge war und clang mich nur noch mal daran erinnern wollte. Denn andere Klassen in dieser Form blieben ja unbeanstandet.
Nochmal danke für die Korrektur, ich nehme immer jede Zeile mit, auch wenn ich sie nicht gleich verarbeiten kann
Es fuktioniert nun alles so, wie es soll. Aber frage mich keiner warum.
It's magic
Lieben Dank an alle User, die versucht haben, mir Hilfe zu geben.
Und ehe ich ein neues Thema eröffne, so möcht ich meine Frage gerne gleich hier stellen:
Ist dieses Buch empfehlenswert?
[Link Text]https://www.amazon.de/Das-umfassende-Handbuch-Aktuell-17/dp/3836243601/ref=sr_1_4?s=books&ie=UTF8&qid=1527495074&sr=1-4&keywords=c%2B%2B(Link Adresse)
Es ist ein C++ Buch vom Rheinwerk-Verlag, aber nicht von Herrn Wolf.
danke, ihr habt beide recht, ich sollte mich darauf einlassen git zu benutzen. im moment ist es noch sehr gewöhnungsbedürftig, aber das scheint ja nicht nur mir am anfang so gegangen zu sein.