Login Page - Create Account

Support Board


Date/Time: Mon, 29 Apr 2024 07:52:06 +0000



CPP Compiling mingw32/64 MS Visual C

View Count: 2264

[2018-04-24 10:37:42]
User92573 - Posts: 483
Dear Support, please can you help with the following?

I do not particularly want to use/install MS Visual C, or remote build a DLL when I can use my own PC.
The compiler folder C:\SierraChart\CPPCompiler still shows mingw32 as available but "Build Advanced Custom Studies DLL" under Analysis, does not any longer seem to support mingw32 compiler selection, or even the mingw64 that is recommended in the support section?

I'd be grateful for some direction. Maybe its now necessary to build the DLL outside of SC? I had thought the move was away from MS restrictions other than the platform itself so a little surprised the MS Visual C has been added.

Many thanks in advance.
[2018-04-24 12:29:29]
Sierra Chart Engineering - Posts: 104368
You need to use Remote Build. That is perfectly safe.


Delete the CPPCompiler folder. It is no longer used.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2018-04-24 19:26:19]
User92573 - Posts: 483
Okay, will do however I can see that I did in fact use Visual C++ Express for previous builds so I have followed very carefully the details provided at "https://www.sierrachart.com/index.php?page=doc/UsingVisualCPlusPlus.php" but now without success.

Here is the debug output:

1>------ Build started: Project: My Custom Study DLL V1, Configuration: Debug Win32 ------
1> MyCustomStudyDLLV1.cpp
1>c:\sierrachart\acs_source\vapcontainer.h(337): error C2758: 'c_VAPContainerBase<t_VolumeAtPrice>::m_InitialAllocationElements' : must be initialized in constructor base/member initializer list
1> with
1> [
1> t_VolumeAtPrice=s_VolumeAtPriceV2
1> ]
1> c:\sierrachart\acs_source\vapcontainer.h(303) : see declaration of 'c_VAPContainerBase<t_VolumeAtPrice>::m_InitialAllocationElements'
1> with
1> [
1> t_VolumeAtPrice=s_VolumeAtPriceV2
1> ]
1> c:\sierrachart\acs_source\vapcontainer.h(336) : while compiling class template member function 'c_VAPContainerBase<t_VolumeAtPrice>::c_VAPContainerBase(const c_VAPContainerBase<t_VolumeAtPrice> &)'
1> with
1> [
1> t_VolumeAtPrice=s_VolumeAtPriceV2
1> ]
1> c:\sierrachart\acs_source\vapcontainer.h(1247) : see reference to class template instantiation 'c_VAPContainerBase<t_VolumeAtPrice>' being compiled
1> with
1> [
1> t_VolumeAtPrice=s_VolumeAtPriceV2
1> ]
1>c:\sierrachart\acs_source\vapcontainer.h(337): error C2614: 'c_VAPContainerBase<t_VolumeAtPrice>' : illegal member initialization: 'c_VAPContainerBase<s_VolumeAtPriceV2>' is not a base or member
1> with
1> [
1> t_VolumeAtPrice=s_VolumeAtPriceV2
1> ]
1>c:\sierrachart\acs_source\vapcontainer.h(337): error C2758: 'c_VAPContainerBase<t_VolumeAtPrice>::m_InitialAllocationElements' : must be initialized in constructor base/member initializer list
1> with
1> [
1> t_VolumeAtPrice=s_VolumeLevelAtPrice
1> ]
1> c:\sierrachart\acs_source\vapcontainer.h(303) : see declaration of 'c_VAPContainerBase<t_VolumeAtPrice>::m_InitialAllocationElements'
1> with
1> [
1> t_VolumeAtPrice=s_VolumeLevelAtPrice
1> ]
1> c:\sierrachart\acs_source\vapcontainer.h(336) : while compiling class template member function 'c_VAPContainerBase<t_VolumeAtPrice>::c_VAPContainerBase(const c_VAPContainerBase<t_VolumeAtPrice> &)'
1> with
1> [
1> t_VolumeAtPrice=s_VolumeLevelAtPrice
1> ]
1> c:\sierrachart\acs_source\vapcontainer.h(1324) : see reference to class template instantiation 'c_VAPContainerBase<t_VolumeAtPrice>' being compiled
1> with
1> [
1> t_VolumeAtPrice=s_VolumeLevelAtPrice
1> ]
1>c:\sierrachart\acs_source\vapcontainer.h(337): error C2614: 'c_VAPContainerBase<t_VolumeAtPrice>' : illegal member initialization: 'c_VAPContainerBase<s_VolumeLevelAtPrice>' is not a base or member
1> with
1> [
1> t_VolumeAtPrice=s_VolumeLevelAtPrice
1> ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


This is based on the exact example provided on the page.

I have not added "#include "stdafx.h" to your source code example which is mentioned later on the page as I have not required it independently in the past.

Can you provide any direction?

Many thanks
[2018-04-24 19:31:24]
Sierra Chart Engineering - Posts: 104368
Yes you need to update the Visual C++ compiler/development environment you are using, to the current version. The current one is Visual Studio 2017.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2018-04-24 19:31:59
[2018-04-25 10:47:25]
User92573 - Posts: 483
I have installed the latest version "Visual Studio 2017".

Set all properties as suggested.

I've not changed any linker settings as suggested elsewhere as I've set General >> Output Directory to: C:\SierraChart\Data\ .. as suggested.

Debug Active Solution = Debug; Active Solution Platform = x86 Platform = Win32; I've not changed this to x64?

I have included the full location "C:\SierraChart\ACS_Source\sierrachart.h" of the headers as #include "sierrachart.h" was not enough.

The error I am getting is LINK1561 entry point must be defined.

I did not have issues when previously compiling studies and my own as well as the SC example will no longer compile without error.

Any help appreciated.
Date Time Of Last Edit: 2018-04-25 14:41:23
[2018-04-25 14:40:52]
User92573 - Posts: 483
... adding to the previous message.

I currently use Dev-C++/Bloodshed for other basic programming and in the past, for Sierra Charts, Visual Studio 2010.

VS 2017 is new to me and I'm struggling to understand why the examples on the Sierra Chart Support Board as well as my other .CPP files no longer compile?

Thank you.
[2018-04-25 18:54:08]
Sierra Chart Engineering - Posts: 104368
Post 5, 6 and 7 are not within the scope of our support.

We recommend using the "Remote Build" option (Step 19.9). Refer to

Advanced Custom Study Interface and Language (ACSIL): Step-By-Step Instructions to Create an Advanced Custom Study Function


You can also build locally following step 19.10.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2018-04-25 18:54:58
[2018-04-25 22:06:02]
User92573 - Posts: 483
Thank you that's a very useful page but there are still many issues. Surely building a DLL should not have deteriorated as Sierra Charts has moved forwards. There was never any issues with the earlier mingw compiler. I'm at a loss to understand what's happened?

The Sierra Chart MS Visual C++ >> Install Compiler btn ... goes to Microsoft and downloads MS Visual Studio 2017 ... and Sierra Charts then seems to call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat. No mention of 2017 or 32/64?

Am I missing something here? Is there some reason why the simplicity of compiling locally has now disappeared?

This is a great product but this is really not helpful.

Thanks in advance as I'm sure you'll fix this.
Date Time Of Last Edit: 2018-04-25 22:07:02
[2018-04-25 22:35:01]
Sierra Chart Engineering - Posts: 104368
One thing that you can rely on is that we are not going to be able to fix any issues which involve problems with the Microsoft Visual C++ compiler on your system.



Am I missing something here? Is there some reason why the simplicity of compiling locally has now disappeared?
What does this mean? You have not even described any issue in post #9.

Surely building a DLL should not have deteriorated as Sierra Charts has moved forwards.
This statement also makes utterly no sense. We have made building a custom studies DLL so monumentally simple with Remote Build.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2018-04-25 22:44:21
[2018-04-25 22:37:16]
Sierra Chart Engineering - Posts: 104368
One thing we just noticed is you are running 1669. You need to update to the current version now:
Software Download: Fast Update
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2018-04-25 22:41:56
[2018-04-26 05:50:08]
Sierra Chart Engineering - Posts: 104368
This section here explains more about building 32 and 64-bit DLLs:
How to Use an Advanced Custom Study or a Study Collection: Custom Study Not Listed or Not Displaying on Chart
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2018-04-26 07:33:02]
ganz - Posts: 1048
User92573
I don't really see why its a simple process compiling remotely but not so simple locally.
https://github.com/orlp/dev-on-windows/wiki/Installing-GCC--&-MSYS2

Remote Build - Error SC version 1689

How to build ACSIL study on Ubuntu/Linux
[2018-04-26 08:27:38]
User92573 - Posts: 483
SOLVED (MS Visual C++ 2017)

Okay, so firstly I set the linker output file to:

C:\SierraChart\Data\$(TargetName)$(TargetExt)


Then I changed the default setting for configuration type to create a DLL and not exe. as was the default.

1.Open the project Properties (not solution)
2.Click >> Configuration Properties
3.Click >> General property
4.Set the Configuration Type property (Below Project defaults) to "Dynamic Library (.dll)"

That sorted the build issues.

PS Thank you so much for the links and all of the assistance.
Date Time Of Last Edit: 2018-04-26 08:29:45

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account