Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Undefined Symbols Error in Xcode 15.2 When Building InDesign SDK 2025

Community Beginner ,
Oct 23, 2024 Oct 23, 2024

Hi All, I am getting below error when trying to build my native c++ plugin in xcode 15.2. 

Can anyone please help.

Thanks

 

Undefined symbols for architecture x86_64:

  "boost::this_thread::interruption_point()", referenced from:

      boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) in HttpUtils.o

  "boost::this_thread::disable_interruption::disable_interruption()", referenced from:

      boost::shared_mutex::lock() in HttpUtils.o

      boost::shared_mutex::lock_shared() in HttpUtils.o

  "boost::this_thread::disable_interruption::~disable_interruption()", referenced from:

      boost::shared_mutex::lock() in HttpUtils.o

      boost::shared_mutex::lock_shared() in HttpUtils.o

  "boost::detail::get_current_thread_data()", referenced from:

      boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*) in HttpUtils.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

 

 

<Title renamed by MOD>

TOPICS
SDK
4.5K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Oct 23, 2024 Oct 23, 2024

@Alam5EC6 When the pre-release version 20 SDK came out, there was a lot of mentioning that the version 20 plugins should be compliant with the C++17 standard. I made sure my code was ... but it turned out that the SDK was not ! Are you trying to build using the C++17 standard ? So I went back to C++14 and everything works fine.

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 23, 2024 Oct 23, 2024

@Olivier Beltrami  Thanks for reply. 

After went to c++14 now I am getting "Use of undeclared identifier 'LONG_LONG_MIN" see screenshot for reference.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Oct 23, 2024 Oct 23, 2024

What version of C++ were you using for your version 19 plugins ?

Try using the exact same settings as for previous versions.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 23, 2024 Oct 23, 2024

In previous version 19, I was using GNU++14 [-std=gnu++14]. I tried with it as well in SDK version 20 but still it is giving me previos errors. Attached file for reference.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 23, 2024 Oct 23, 2024

I would suggest you first try to build a sample plugin and if that does not build then definitely you have an incorrect setup of dev env. The best way to resolve such an error is to cross check the recommended env in the SDK documentation.

-Manan

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 23, 2024 Oct 23, 2024

@Manan Joshi  thanks for the reply.

The samples plugins are building fine without any errors.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 23, 2024 Oct 23, 2024

Then we would need to check it from the Boost end maybe. Did you create the lib you are linking against?

-Manan

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 24, 2024 Oct 24, 2024

I did not create any lib. The boost libraries are already linked in project. Attached screenshot for the reference.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Mentor ,
Oct 24, 2024 Oct 24, 2024

In both a reference SDK sample project and your own project, create a shell script build phase that outputs all the environment variables to a file – alternatively there's also a "Show environment variables in build log".

Compare both files.

Some of the differences are random IDs that differ per Xcode run.

Ignore those cases; taking an automated approach I use a sed script to clean them up.

Also offload all build setting overrides within the project into xcconfig files.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 24, 2024 Oct 24, 2024

I compared build settings with previous 19 SDK proj file and every settings are similiar in 20 SDK proj file but still getting the above errors.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Mentor ,
Oct 24, 2024 Oct 24, 2024
LATEST

Hmm, did you compare build settings in the IDE (multiple places to cover, easy to miss one) or a dump of the environment variables as I suggested?

 

Also have a look SDK docs/html/id_porting_guide.html mentions "Other project changes to note"

Watch out for CLANG_CXX_LANGUAGE_STANDARD and BOOST_SPIRIT_THREADSAFE e.g. if you use own xcconfig and bypass common.xcconfig .

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines