Linking Error C++ - visual-c++

I am getting the following error during linking c++ code with MS VC 6:
Creating library Debug/RATPSS.lib and object Debug/RATPSS.exp
LINK : warning LNK4098: defaultlib "MSVCRTD" conflicts with use of other libs; use /NODEFAULTLIB:library
CDispatchFailurePssData.obj : error LNK2001: unresolved external symbol "class ostream_withassign cout" (?cout##3Vostream_withassign##A)
CNormalAccPssData.obj : error LNK2001: unresolved external symbol "class ostream_withassign cout" (?cout##3Vostream_withassign##A)
CNormalPssData.obj : error LNK2001: unresolved external symbol "class ostream_withassign cout" (?cout##3Vostream_withassign##A)
Debug/RATPSS.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Other thirdparty softwares used: Rouguewave 4,orbix 5.1 .
Please suggest the possible solution approach.

I think there is a problem of the properties of the project that are dependent on each other.
Probably change the property would fix the problem.
See here /NODEFAULTLIB (Ignore Libraries) and change the property according to your requirment.

Related

ffmpeg compile for visual studio 2012

Was trying to compile ffmpeg using vs2012 , its saying unsupported ms version used 2013 or above .
also tried compiling with mingw , got the shared libraries , but unable to link with vs 2012 project giving unresolved symbols error .
error LNK2019: unresolved external symbol _avcodec_get_class referenced in function _wmain
: error LNK2019: unresolved external symbol _avcodec_find_encoder_by_name referenced in function _wmain
not sure how to proceed . could nay help on this pls .
tried the way specified in the link https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC but could not make it .

how to compile pymqe.c for Python3?

I managed to process module pymqe.c into pymqe.pyd for Python2 using VC 2017 compiler and my own make file. Unfortunately, it doesn’t work for Python3. If I try compile module pymqe.c from pymqi-1.9.3.tar.gz in the same way, the linking step fails with the error message:
LINK : error LNK2001: unresolved external symbol initpymq
pymqe.lib : fatal error LNK1120: 1 unresolved externals
My make file contains the following instruction to link pymqe.c with the resulting library pymqe.pyd:
/EXPORT:initpymqe pymqe.obj
I assume, the function initpymqe is excluded during compilation for Python3 due to pre-compiler instruction in the source code of the module pymqe.c:
#if PY_MAJOR_VERSION==2
void initpymqe(void) {
…
#else
Does anyone know, how to handle this problem?

How to use libgit2 from a native C++ application on Windows? (Microsoft VC++)

Summary: Is there any tiny example on how to build the Win32 C++ console application that uses the libgit2 library (sources available at GitHub)?
I have followed the readme and the wiki on how to build the library on Windows using the CMake, and it worked smoothly (only a single unit-test error).
Now, I want to build a simple console application that uses the library -- using Microsoft Visual Studio C++ 2010 (the.vcxproj and the.sln). I have found the general.c code in the libgit2 examples, and I would like to do the same from my C++ application. No success -- I feel really stupid today...
I have noticed there is libqgit2 for C++ and Qt. Is there anything similar for pure C++? Or is there a way to use the C library from C++ application?
Update: I have renamed the general.c to general.cpp, added the libgit2 include path to the project and the path to the .lib files, changed the #include <stdio.h> to #include <cstdio>, and compiled. The following link errors appear:
1>------ Build started: Project: libgit2_general, Configuration: Debug Win32 ------
1>general.obj : error LNK2019: unresolved external symbol _git_repository_free referenced in function _main
1>general.obj : error LNK2019: unresolved external symbol _git_config_get_string referenced in function _main
1>general.obj : error LNK2019: unresolved external symbol _git_config_get_int32 referenced in function _main
1>general.obj : error LNK2019: unresolved external symbol _git_config_open_ondisk referenced in function _main
1>general.obj : error LNK2019: unresolved external symbol _git_strarray_free referenced in function _main
... etc.
1>general.obj : error LNK2019: unresolved external symbol _git_repository_open referenced in function _main
1>general.obj : error LNK2019: unresolved external symbol _giterr_last referenced in function "void __cdecl check_error(int,char const *)" (?check_error##YAXHPBD#Z)
1>D:\Tutorial\libgit2_general\Debug\libgit2_general.exe : fatal error LNK1120: 56 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
This strongly suggests a calling convention mismatch to me. libgit2 uses __stdcall by default, for a number of reasons, while Visual Studio defaults to creating projects that use the __cdecl calling convention. While your program can use either calling convention and successfully call libgit2 using a different one, the easiest solution is probably just to use the same calling convention for both.
When you configure libgit2, you can turn off the STDCALL flag, which will cause it to emit a library built with __cdecl calling conventions:
cmake %PATH_TO_LIBGIT2_SOURCE% -DTHREADSAFE=ON -DSTDCALL=OFF
cmake --build .
It's a little surprising if you generated the project from CMake, bit it could be that you're not linking to libgit2.lib. Make sure you have git2.dll in Project Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies.

How to port Cocos2dx-wp8 from Application (.exe) to Dynamic Library (.dll)

I've been going at this problem for almost a week now and I still have 700+ errors. Definitely need all your help! Thanks.
Problem: Need to use
Cocos2dx for Windows Phone 8
in my C++/DirectX Visual Studio 2012 project that also uses C#/XAML UI.
Given: Cocos2dx-wp8 as an Application .exe project downloaded from http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download
Solution:
Open my C#/XAML/DirectX Game1 solution .sln project in Visual Studio 2012.
Right click on solution in Solution Explorer. Add --> Existing Project...
Selected: \cocos2dx-0.13.0-wp8-0.8\HelloWorld\cocos2d.vcxproj and clicked open
Renamed the HelloWorld project to something else like "Cocos2dxWp8" and delete the HelloWorld Classes folder and all the Assets you don't want (like the squirrels and background images)
Click Properties --> Configuration Properties --> General --> Configuration Type --> from "Application (.exe) change to "Dynamic Library (.dll)"
Added new paths to Properties --> C/C++ --> Additional Include Directories -->
$(ProjectDir); $(IntermediateOutputPath); ..\cocos2dx\include;
..\cocos2dx; ..\cocos2dx\platform\third_party\win8_metro\libpng;
..\cocos2dx\platform\third_party\win8_metro\zlib;
..\cocos2dx\platform\third_party\win8_metro; ....\Cocos2dxWp8;
..\cocos2dx\platform\win8_metro;
..\cocos2dx\platform\third_party\win8_metro\freetype;
..\cocos2dx\platform\third_party\win8_metro\libjpeg;
..\CocosDenshion\include; ..\cocos2dx\platform; inc;
%(AdditionalIncludeDirectories)
Updated the paths in Properties --> Linker --> Input --> Additional Dependencies -->
..\cocos2dx\platform\third_party\win8_metro\libraries\x86\freetype.lib;
..\cocos2dx\platform\third_party\win8_metro\libraries\x86\zlib.lib;
..\cocos2dx\platform\third_party\win8_metro\libraries\x86\libjpeg.lib;
..\cocos2dx\platform\third_party\win8_metro\libraries\x86\libpng.lib;
dxguid.lib;xaudio2.lib;dxgi.lib;uuid.lib;d3d11.lib;%(AdditionalDependencies)
Updated paths in VC++ Directories:
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third_party\win8_metro\freetype;
$(SolutionDir); $(ProjectDir)inc;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\CocosDenshion\include;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third_party\win8_metro\zlib;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third_party\win8_metro\libraries;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third_party\win8_metro\libpng;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third_party\win8_metro\libjpeg;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third_party\win8_metro\libxml2;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third_party\win8_metro\;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\win8_metro;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\include;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx; $(IncludePath)
From here, it builds successfully!
It outputs a .dll file but no .lib file, so...
In CCPlatformMacros.h, I enabled exporting classes to dll:
#define CC_DLL __declspec(dllexport)
Yah, .lib is being written to then...
715 Errors, 772 Warnings
Error 773 error LNK2001: unresolved external symbol "public: virtual
__thiscall cocos2d::CCKeypadHandler::~CCKeypadHandler(void)" (??1CCKeypadHandler#cocos2d#UAE#XZ)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCSpriteBatchNode.obj
Cocos2dXWp8Framework Error 774 error LNK2001: unresolved external
symbol "public: virtual __thiscall
cocos2d::CCKeypadHandler::~CCKeypadHandler(void)"
(??1CCKeypadHandler#cocos2d#UAE#XZ)
I've included the header file for where CCKeyHandler class is defined (inside CCKeypadDelegate.h) and CCSpriteBatchNode.h is also in the same include folder.
Class signatures look like this:
class CC_DLL CCKeypadHandler : public CCObject
class CC_DLL CCSpriteBatchNode : public CCNode, public CCTextureProtocol
Errors continue as is...
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\cocos2dorig.obj
Cocos2dXWp8Framework Error 775 error LNK2001: unresolved external
symbol "public: virtual __thiscall
cocos2d::CCKeypadHandler::~CCKeypadHandler(void)"
(??1CCKeypadHandler#cocos2d##UAE#XZ)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCImage_win8_metro.obj
Cocos2dXWp8Framework
...
Error 1482 error LNK2001: unresolved external symbol "public: virtual
void __thiscall cocos2d::CCTMXMapInfo::textHandler(void *,char const
*,int)" (?textHandler#CCTMXMapInfo#cocos2d#UAEXPAXPBDH#Z) F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCDrawingPrimitives.obj
Cocos2dXWp8Framework Error 1483 error LNK2001: unresolved external
symbol "public: virtual void __thiscall
cocos2d::CCTMXMapInfo::textHandler(void *,char const *,int)"
(?textHandler#CCTMXMapInfo#cocos2d#UAEXPAXPBDH#Z)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\cocos2d.obj
Cocos2dXWp8Framework Error 1484 error LNK2019: unresolved external
symbol "public: virtual __thiscall
cocos2d::CCKeypadDispatcher::~CCKeypadDispatcher(void)"
(??1CCKeypadDispatcher#cocos2d#UAE#XZ) referenced in function "public:
virtual void * __thiscall cocos2d::CCKeypadDispatcher::`vector
deleting destructor'(unsigned int)"
(??_ECCKeypadDispatcher#cocos2d#UAEPAXI#Z)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCDirector.obj
Cocos2dXWp8Framework Error 1485 error LNK2001: unresolved external
symbol "public: virtual __thiscall
cocos2d::CCKeypadDispatcher::~CCKeypadDispatcher(void)"
(??1CCKeypadDispatcher#cocos2d#UAE#XZ)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCLayer.obj
Cocos2dXWp8Framework Error 1486 error LNK2001: unresolved external
symbol "public: virtual __thiscall
cocos2d::CCKeypadDispatcher::~CCKeypadDispatcher(void)"
(??1CCKeypadDispatcher#cocos2d#UAE#XZ)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCEGLView_win8_metro.obj
Cocos2dXWp8Framework Error 1487 error LNK1120: 48 unresolved externals
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\Win32\Debug\cocos2d\Cocos2dXWp8Framework.dll
Cocos2dXWp8Framework
Solution / Project paths:
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx.sln
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\GameWp8Dx\GameWp8Dx.csproj
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\GameWp8DxComponent\GameWp8DxComponent.vcxproj
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\cocos2d.vcxproj
Cocos2d Include files:
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\cocos2dx\include
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\cocos2dx\platform
Object files built here:
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\Win32\Debug*.obj
.dll / .lib built here:
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\Win32\Debug\cocos2d
Sorry for the long post, but I hope that's enough details to get this question going. Thanks.
I created a new dynamic library project, then copied over the files. I got the .dll and .lib built, but didn't work for an ARM CPU build target (used for devices). Also, the setup for the Cocos2dx director and scene layer doesn't seem to work well with an existing C#/XAML with DirectX project that renders onto a DrawingSurfaceBackgroundGrid control. So at the end, I didn't end up using Cocos2dx in my mixed project setup.
If anyone else got better suggestions, please let me know. Thanks.
ON TOPIC:
Perhaps you did not properly set project dependencies inside your SLN ?
I got Cocos2d to partially work with XAML+D3d Interop, but because calls go back and forward from the XAMLComponent DLL to the Cocos2d DLL, it seems to be messing up pointers and memory.
Right now I tried to move all Cocos2D source files to my D3Dcomponent project, but something is terribly wrong, and I get a weird kernelbase.dll first chance exception.
OFF TOPIC:
I was also trying to put a game done over cocos2d-x on an XAML+D3D Interop project, and used the template that comes with Visual Studio 2012. However, only a smudgy background was displayed. I was using DrawingSurfaceBackgroundGrid, and found out later that on Windows Phone 8, it has some issues related to Z-order. I ended up replacing it with DrawingSurface.

GLSL - unresolved external on Visual C++

I'm getting started with the GLSL. What should i do to resolve this:
error LNK2001: unresolved external symbol _pglLinkProgram
error LNK2001: unresolved external symbol _pglAttachShader
error LNK2001: unresolved external symbol _pglCompileShader
error LNK2001: unresolved external symbol _pglShaderSource
error LNK2001: unresolved external symbol _pglCreateShader
error LNK2001: unresolved external symbol _pglCreateProgram
error LNK2001: unresolved external symbol _pglGetProgramInfoLog
error LNK2001: unresolved external symbol _pglGetProgramiv
error LNK2001: unresolved external symbol _pglUseProgram
You seem to be using some form of library that wraps GL entrypoints (the entrypoints you list are not direct GL entrypoints).
This library (GLEE ?) likely is coming with a .lib file that you need to link against.
Coming from the project page of GLEE (my guess, based on a quick googling of who is using the prefix p for GL calls):
Usage examples
To use GLee, include
GLee.h, then simply link to GLee.lib
or alternatively add GLee.c to your
project.
You have to link your program against opengl32.lib, see here.
I recommend you start using GLEW since OpenGL > 1.5 on Windows is a bit of a pain in the ass. This will get you all OpenGL entry points without messing with extension pointers.

Resources