Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ITKDeprecated module missing EXPORT macros #577

Closed
phcerdan opened this issue Mar 7, 2019 · 0 comments · Fixed by #578
Closed

ITKDeprecated module missing EXPORT macros #577

phcerdan opened this issue Mar 7, 2019 · 0 comments · Fixed by #578
Labels
type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances

Comments

@phcerdan
Copy link
Contributor

phcerdan commented Mar 7, 2019

Raised when integrating ITKv5 into Slicer (using ITKDeprecated module)
Slicer/Slicer#1096

Error:

ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj" (default target) (32) ->
         (Link target) -> 
    10>itkConditionVariable.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::ConditionVariable::`vftable'" (__imp_??_7ConditionVariable@itk@@6B@) referenced in function "protected: __cdecl itk::ConditionVariable::ConditionVariable(void)" (??0ConditionVariable@itk@@IEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2001: unresolved external symbol "public: virtual char const * __cdecl itk::SimpleMutexLock::GetNameOfClass(void)" (?GetNameOfClass@SimpleMutexLock@itk@@UEAAPEBDXZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::SimpleMutexLock::`vftable'" (__imp_??_7SimpleMutexLock@itk@@6B@) referenced in function "public: __cdecl itk::SimpleMutexLock::SimpleMutexLock(void)" (??0SimpleMutexLock@itk@@QEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>ITK-build\bin\Release\ITKDeprecated-5.0.dll : fatal error LNK1120: 3 unresolved externals [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]

It seems that the EXPORT macros were not updated maybe?:

* SimpleFastMutexLock is not a subclass of Object and is designed to be
* allocated on the stack.
*
* \ingroup OSSystemObjects
* \ingroup ITKDeprecated
*/
// Critical Section object that is not a itkObject.
class ITKCommon_EXPORT SimpleFastMutexLock
{
public:

I guess that ITKCommon_EXPORT should be ITKDeprecated_EXPORT?

Are these windows error related to that? Pinging @dzenanz for insight

@phcerdan phcerdan added the type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances label Mar 7, 2019
phcerdan added a commit to phcerdan/ITK that referenced this issue Mar 7, 2019
It was using the export macros from their old `Common` module.

Errors:

```
ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj" (default target) (32) ->
         (Link target) ->
    10>itkConditionVariable.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::ConditionVariable::`vftable'" (__imp_??_7ConditionVariable@itk@@6b@) referenced in function "protected: __cdecl itk::ConditionVariable::ConditionVariable(void)" (??0ConditionVariable@itk@@iEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2001: unresolved external symbol "public: virtual char const * __cdecl itk::SimpleMutexLock::GetNameOfClass(void)" (?GetNameOfClass@SimpleMutexLock@itk@@UEAAPEBDXZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::SimpleMutexLock::`vftable'" (__imp_??_7SimpleMutexLock@itk@@6b@) referenced in function "public: __cdecl itk::SimpleMutexLock::SimpleMutexLock(void)" (??0SimpleMutexLock@itk@@qeaa@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>ITK-build\bin\Release\ITKDeprecated-5.0.dll : fatal error LNK1120: 3 unresolved externals [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]

```
Closes InsightSoftwareConsortium#577
phcerdan added a commit to phcerdan/ITK that referenced this issue Mar 7, 2019
It was using the export macros from their old `Common` module.

Errors:

```
ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj" (default target) (32) ->
         (Link target) ->
    10>itkConditionVariable.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::ConditionVariable::`vftable'" (__imp_??_7ConditionVariable@itk@@6b@) referenced in function "protected: __cdecl itk::ConditionVariable::ConditionVariable(void)" (??0ConditionVariable@itk@@iEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2001: unresolved external symbol "public: virtual char const * __cdecl itk::SimpleMutexLock::GetNameOfClass(void)" (?GetNameOfClass@SimpleMutexLock@itk@@UEAAPEBDXZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::SimpleMutexLock::`vftable'" (__imp_??_7SimpleMutexLock@itk@@6b@) referenced in function "public: __cdecl itk::SimpleMutexLock::SimpleMutexLock(void)" (??0SimpleMutexLock@itk@@qeaa@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>ITK-build\bin\Release\ITKDeprecated-5.0.dll : fatal error LNK1120: 3 unresolved externals [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]

```
Closes InsightSoftwareConsortium#577
phcerdan added a commit to phcerdan/ITK that referenced this issue Mar 7, 2019
It was using the export macros from their old `Common` module.

Errors:

```
ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj" (default target) (32) ->
         (Link target) ->
    10>itkConditionVariable.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::ConditionVariable::`vftable'" (__imp_??_7ConditionVariable@itk@@6b@) referenced in function "protected: __cdecl itk::ConditionVariable::ConditionVariable(void)" (??0ConditionVariable@itk@@iEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2001: unresolved external symbol "public: virtual char const * __cdecl itk::SimpleMutexLock::GetNameOfClass(void)" (?GetNameOfClass@SimpleMutexLock@itk@@UEAAPEBDXZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::SimpleMutexLock::`vftable'" (__imp_??_7SimpleMutexLock@itk@@6b@) referenced in function "public: __cdecl itk::SimpleMutexLock::SimpleMutexLock(void)" (??0SimpleMutexLock@itk@@qeaa@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>ITK-build\bin\Release\ITKDeprecated-5.0.dll : fatal error LNK1120: 3 unresolved externals [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]

```
Closes InsightSoftwareConsortium#577
phcerdan added a commit to phcerdan/ITK that referenced this issue Mar 7, 2019
It was using the export macros from their old `Common` module.

Errors:

```
ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj" (default target) (32) ->
         (Link target) ->
    10>itkConditionVariable.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::ConditionVariable::`vftable'" (__imp_??_7ConditionVariable@itk@@6b@) referenced in function "protected: __cdecl itk::ConditionVariable::ConditionVariable(void)" (??0ConditionVariable@itk@@iEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2001: unresolved external symbol "public: virtual char const * __cdecl itk::SimpleMutexLock::GetNameOfClass(void)" (?GetNameOfClass@SimpleMutexLock@itk@@UEAAPEBDXZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::SimpleMutexLock::`vftable'" (__imp_??_7SimpleMutexLock@itk@@6b@) referenced in function "public: __cdecl itk::SimpleMutexLock::SimpleMutexLock(void)" (??0SimpleMutexLock@itk@@qeaa@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>ITK-build\bin\Release\ITKDeprecated-5.0.dll : fatal error LNK1120: 3 unresolved externals [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]

```
Closes InsightSoftwareConsortium#577
phcerdan added a commit to phcerdan/ITK that referenced this issue Mar 7, 2019
It was using the export macros from their old `Common` module.

Errors:

```
ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj" (default target) (32) ->
         (Link target) ->
    10>itkConditionVariable.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::ConditionVariable::`vftable'" (__imp_??_7ConditionVariable@itk@@6b@) referenced in function "protected: __cdecl itk::ConditionVariable::ConditionVariable(void)" (??0ConditionVariable@itk@@iEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2001: unresolved external symbol "public: virtual char const * __cdecl itk::SimpleMutexLock::GetNameOfClass(void)" (?GetNameOfClass@SimpleMutexLock@itk@@UEAAPEBDXZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::SimpleMutexLock::`vftable'" (__imp_??_7SimpleMutexLock@itk@@6b@) referenced in function "public: __cdecl itk::SimpleMutexLock::SimpleMutexLock(void)" (??0SimpleMutexLock@itk@@qeaa@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>ITK-build\bin\Release\ITKDeprecated-5.0.dll : fatal error LNK1120: 3 unresolved externals [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]

```
Closes InsightSoftwareConsortium#577
phcerdan added a commit to phcerdan/ITK that referenced this issue Mar 7, 2019
It was using the export macros from their old `Common` module.

Errors:

```
ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj" (default target) (32) ->
         (Link target) ->
    10>itkConditionVariable.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::ConditionVariable::`vftable'" (__imp_??_7ConditionVariable@itk@@6b@) referenced in function "protected: __cdecl itk::ConditionVariable::ConditionVariable(void)" (??0ConditionVariable@itk@@iEAA@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2001: unresolved external symbol "public: virtual char const * __cdecl itk::SimpleMutexLock::GetNameOfClass(void)" (?GetNameOfClass@SimpleMutexLock@itk@@UEAAPEBDXZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>itkMutexLock.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::SimpleMutexLock::`vftable'" (__imp_??_7SimpleMutexLock@itk@@6b@) referenced in function "public: __cdecl itk::SimpleMutexLock::SimpleMutexLock(void)" (??0SimpleMutexLock@itk@@qeaa@XZ) [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]
    10>ITK-build\bin\Release\ITKDeprecated-5.0.dll : fatal error LNK1120: 3 unresolved externals [ITK-build\Modules\Compatibility\Deprecated\src\ITKDeprecated.vcxproj] [ITK.vcxproj]

```
Closes InsightSoftwareConsortium#577
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant