Skip to content

Conversation

@jcfr
Copy link
Contributor

@jcfr jcfr commented Sep 4, 2025

The changes ensure that the main function signatures in the generator, test and example files is consistent.

It updates the argv parameter type from char **argv to char *argv[] and resolves a specific link error encountered when building PythonQtCppTests on Windows.

This will be helpful to integrate with the CMake/CTest testing framework. By default, the CMake test driver1 expects the main function to have the following signature:

typedef int (*MainFuncPointer)(int, char* []);

This will fix link errors like the following when building PythonQtCppTests on Windows:

1>PythonQtCppTests.obj : error LNK2001: unresolved external symbol "int __cdecl tests_PythonQtTestMain(int,char * * const)" (?tests_PythonQtTestMain@@YAHHQEAPEAD@Z)
1>C:\temp\PythonQt-build\Debug\PythonQtCppTests.exe : fatal error LNK1120: 1 unresolved externals

Note

For reference, those patches were developed in the context of the commontk/PythonQt fork.

Cherry picked from commit commontk/PythonQt@aa1a16f

Footnotes

  1. https://github.com/Kitware/CMake/blob/master/Templates/TestDriver.cxx.in

msmolens and others added 2 commits September 4, 2025 18:10
This changes the type of the `argv` parameter in the `main` function
to match the expected signature for integration with the CMake testing
framework. By default, the test driver expects the main function to have
the following signature:

```
typedef int (*MainFuncPointer)(int, char* []);
```

See https://github.com/Kitware/CMake/blob/master/Templates/TestDriver.cxx.in

This fixes a link error when building PythonQtCppTests on Windows:

```
1>PythonQtCppTests.obj : error LNK2001: unresolved external symbol "int __cdecl tests_PythonQtTestMain(int,char * * const)" (?tests_PythonQtTestMain@@YAHHQEAPEAD@Z)
1>C:\temp\PythonQt-build\Debug\PythonQtCppTests.exe : fatal error LNK1120: 1 unresolved externals
```

(cherry picked from commit commontk/PythonQt@aa1a16f)
This change ensures that the main function signatures in all example
files are consistent.
@jcfr jcfr changed the title Update main function signature to be consistent across generator, test and examples fix: Update main function signature to be consistent across generator, test and examples Sep 4, 2025
Copy link
Contributor

@mrbean-bremen mrbean-bremen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@mrbean-bremen mrbean-bremen merged commit 2b02b85 into MeVisLab:master Sep 5, 2025
19 checks passed
@jcfr
Copy link
Contributor Author

jcfr commented Sep 5, 2025

For the sake of having a "clean" CI, I suggest you choose the "Re-run failed jobs" in the GitHub UI (upper right corner) 🙏

It seems it failed for unrelated reasons.

See https://github.com/MeVisLab/pythonqt/actions/runs/17484189898/job/49660095765

@jcfr jcfr deleted the backport-commontk/fix-windows-link-errors branch September 26, 2025 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants