The Omni Group Forums

The Omni Group Forums (http://forums.omnigroup.com/index.php)
-   Omni Frameworks (http://forums.omnigroup.com/forumdisplay.php?f=16)
-   -   Build error (http://forums.omnigroup.com/showthread.php?t=1867)

derpeer 2006-10-09 04:49 AM

Build error
 
Hi, I'm trying to do "./Scripts/Build Framework install" and get this error:

[CODE]
Ld /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/ppc/OAUnitTests normal ppc
cd /Users/peer/Documents/Xcode/Frameworks/OmniGroup/Frameworks/OmniAppKit
/usr/bin/gcc-4.0 -o /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/ppc/OAUnitTests -L/Users/Shared/peer/Products/Release -F/Users/Shared/peer/Products/Release -F/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks -filelist /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/ppc/OAUnitTests.LinkFileList -framework OmniAppKit -framework OmniFoundation -framework OmniBase -framework Cocoa -framework SenTestingKit -arch ppc -Wl,-x -Wl,-Y,1455 -bundle -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
/usr/bin/ld: Undefined symbols:
_testLineCurveIntersections
_testLineLineIntersections
/Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/ppc/OAGeometryTests.o reference to undefined _testLineCurveIntersections
/Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/ppc/OAGeometryTests.o reference to undefined _testLineLineIntersections
collect2: ld returned 1 exit status

CompileC /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/i386/OAGeometryTests.o /Users/peer/Documents/Xcode/Frameworks/OmniGroup/Frameworks/OmniAppKit/Tests/UnitTests/OAGeometryTests.m normal i386 objective-c com.apple.compilers.gcc.4_0
cd /Users/peer/Documents/Xcode/Frameworks/OmniGroup/Frameworks/OmniAppKit
/usr/bin/gcc-4.0 -x objective-c -arch i386 -pipe -Wno-trigraphs -fobjc-exceptions -fpascal-strings -fasm-blocks -g -O2 -Werror -Wreturn-type -Wformat -Wmissing-braces -Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-variable -Wunused-value -Wuninitialized -Wunknown-pragmas -Wsign-compare -Wnewline-eof -fmessage-length=0 -fobjc-direct-dispatch -mmacosx-version-min=10.4 -I/Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/OAUnitTests.hmap -Wall -Wno-#warnings -Wno-trigraphs -F/Users/Shared/peer/Products/Release -F/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks -I/Users/Shared/peer/Products/Release/include -I/Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/DerivedSources -DOMNI_BUNDLE_IDENTIFIER=@\"\" -isysroot /Developer/SDKs/MacOSX10.4u.sdk -include /Users/Shared/peer/Products/Release/SharedPrecompiledHeaders/OAUnitTests_Prefix-eqvwmjhbilikfrfgkvbpflidruow/OAUnitTests_Prefix.h -c /Users/peer/Documents/Xcode/Frameworks/OmniGroup/Frameworks/OmniAppKit/Tests/UnitTests/OAGeometryTests.m -o /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/i386/OAGeometryTests.o

Ld /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/i386/OAUnitTests normal i386
cd /Users/peer/Documents/Xcode/Frameworks/OmniGroup/Frameworks/OmniAppKit
/usr/bin/gcc-4.0 -o /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/i386/OAUnitTests -L/Users/Shared/peer/Products/Release -F/Users/Shared/peer/Products/Release -F/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks -filelist /Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/i386/OAUnitTests.LinkFileList -framework OmniAppKit -framework OmniFoundation -framework OmniBase -framework Cocoa -framework SenTestingKit -arch i386 -Wl,-x -Wl,-Y,1455 -bundle -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
/usr/bin/ld: Undefined symbols:
_testLineCurveIntersections
_testLineLineIntersections
/Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/i386/OAGeometryTests.o reference to undefined _testLineCurveIntersections
/Users/Shared/peer/Products/Builds/OmniAppKit.build/Release/OAUnitTests.build/Objects-normal/i386/OAGeometryTests.o reference to undefined _testLineLineIntersections
collect2: ld returned 1 exit status
** BUILD FAILED **
Build failed in (OmniGroup/Frameworks/OmniAppKit(OAUnitTests))
[/CODE]

I'm using OSX 10.4.8 (intel) and Xcode 2.4.

btw, I'd love to have the framework in ˜/Documents/Xcode/Frameworks/Omni, but it has been built in a shared folder for all users. What do I need to change?

Oh, a little idiot's howto on using the Framework would be fine :-)

Kind regards,
Peer

tschmitz 2006-10-30 09:40 PM

same problem
 
the same thing has been happening to me. any advice?

bugmenot 2006-12-08 08:06 PM

Re: Build error
 
I had a similar problem. It looks like the Release build tries to compile OAGeometryTests.m... which relies on external functions defined in NSBezierPath-OAExtensions.m... which are #if def'ed out when building for Release... which can't be changed or you get an error for an unused var in those functions because OBAssert is never called...

I worked around it by adding similar #if def statements to OAGeometryTests.m as follows:

[CODE]@interface OAGeometryTests : OATestCase
@end

[COLOR="Red"]#if defined(DEBUG) || defined(COVERAGE) || defined(TEST_INTERNAL_FUNCTIONS)[/COLOR]
extern void testLineLineIntersections(void);
extern void testLineCurveIntersections(void);
[COLOR="Red"]#endif[/COLOR]

@implementation OAGeometryTests

[COLOR="Red"]#if defined(DEBUG) || defined(COVERAGE) || defined(TEST_INTERNAL_FUNCTIONS)[/COLOR]
- (void)testLineLineIntersections
{
testLineLineIntersections();
}

- (void)testLineCurveIntersections
{
testLineCurveIntersections();
}
[COLOR="Red"]#endif[/COLOR]

@end[/CODE]

Also, as for changing the install location, you should be able to set the OMNI_PRODUCT_DIRECTORY varible with the following command (all one line):

[CODE]$ OMNI_PRODUCT_DIRECTORY="˜/Documents/Xcode/Frameworks/Omni" ./Scripts/Build Frameworks install
[/CODE]

...without the leading dollar sign of course. Just look at the Build file -- it's a Unix shell script (if you aren't familiar with shell scripts, it's worth learning!).

- scott

p.s. i hate php forums that require creating accounts.


All times are GMT -8. The time now is 06:53 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.