The static library throws a linker error: "There is no such file or directory"

Background (may or may not be relevant): I'm trying to use a trans compiler called j2objc , which allows you to translate Java code for use in iOS applications. Its core library contains a bunch of objective-c Java Runtime translations. To add this codebase according to its wiki version, I have to add the provided .xcodeproj as a static library. That I have a problem.

What I've done:

  • added provided by .xcodeproj as a child project
  • In the Build Phases my main goal, under Target Dependencies , I added the appropriate target form of the child project
  • In Link Binary with Libraries I added a file called libjre_emul.a , which is the intended output of the child project.
  • This is all in accordance with the instructions of the project and goes according to plan.

What fails: when I try to create a project, I get the following error:

clang: error: no such file or directory: '/Users/Thomas/Library/Developer/Xcode/DerivedData/tuxblocks-asszlcvjgdqugifxhbkkwcrstotk/Build/Products/Debug-iphonesimulator/libjre_emul.a'

Actually there is no libjre_emul.a in this folder, therefore Xcode is right. When I create a child project on my own, I don’t get build errors, so I assume that it does what it should, but I also checked its output folders and did not see libjre_emul.a there. So why is there no output library?

One point that may make a difference: it seems that the library I'm trying to use was created in Xcode 3, and I'm using Xcode 4. I heard that there might be some problems.

I admit that I am new to Xcode, so I may completely misunderstand. In any case, I certainly appreciate your help!

EDIT: I found the libjre_emul.a file. It is located in the folder under the subproject build_result. Copying it to where Xcode expects it to seem to let it work ...

+4
source share
1 answer

In the xcode settings, find the assembly option "Header Search Paths", and then add the directory where your static framework is located. Make sure you specify that it is recursive to help find its subfolders.

0
source

Source: https://habr.com/ru/post/1489151/


All Articles