Kotlin-native: When using generated static library in c++, ld: symbol(s) not found for architecture x86_64

Created on 21 Sep 2018  路  6Comments  路  Source: JetBrains/kotlin-native

Using native 0.9..

components.main {
    targets = ["macos_x64"]
    outputKinds = [STATIC]
}

produces a .a file... but when linking to my c++ program it results in Undefined symbols for architecture x86_64: Outputkind DYNAMIC's .dylib is working correctly with my c++ program

锘縖 22%] Linking CXX executable example
ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame
Undefined symbols for architecture x86_64:
"_NSGenericException", referenced from:
+[KotlinBase allocWithZone:] in libapp.a(combined.o)
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
incorrectNumberInitialization(KotlinNumber*, objc_selector*) in libapp.a(combined.o)
incorrectNumberFactory(objc_class*, objc_selector*) in libapp.a(combined.o)
Kotlin_ObjCExport_refToObjC_slowpath(ObjHeader*) in libapp.a(combined.o)
___34+[NSObject(NSObjectToKotlin) load]_block_invoke in libapp.a(combined.o)
blockToKotlinImp(objc_object*, objc_selector*, ObjHeader**) in libapp.a(combined.o)
...
"_NSSearchPathForDirectoriesInDomains", referenced from:
_platform_Foundation_kniBridge96 in libapp.a(combined.o)
"_NSStringFromClass", referenced from:
incorrectNumberInitialization(KotlinNumber*, objc_selector*) in libapp.a(combined.o)
incorrectNumberFactory(objc_class*, objc_selector*) in libapp.a(combined.o)
"_OBJC_CLASS_$_NSArray", referenced from:
_OBJC_CLASS_$_KListAsNSArray in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSArray_$_NSArrayToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSDecimalNumber", referenced from:
l_OBJC_$_CATEGORY_NSDecimalNumber_$_NSDecimalNumberToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSDictionary", referenced from:
_OBJC_CLASS_$_KMapAsNSDictionary in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSDictionary_$_NSDictionaryToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSEnumerator", referenced from:
_OBJC_CLASS_$_KIteratorAsNSEnumerator in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSEnumerator_$_NSEnumeratorAsAssociatedObject in libapp.a(combined.o)
"_OBJC_CLASS_$_NSError", referenced from:
objc-class-ref in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSError_$_NSErrorKotlinException in libapp.a(combined.o)
"_OBJC_CLASS_$_NSException", referenced from:
objc-class-ref in libapp.a(combined.o)
objc-class-ref in libapp.a(combined.o)
"_OBJC_CLASS_$_NSFileManager", referenced from:
objc-class-ref in libapp.a(combined.o)
"_OBJC_CLASS_$_NSLock", referenced from:
objc-class-ref in libapp.a(combined.o)
"_OBJC_CLASS_$_NSMethodSignature", referenced from:
objc-class-ref in libapp.a(combined.o)
"_OBJC_CLASS_$_NSMutableArray", referenced from:
_OBJC_CLASS_$_KMutableListAsNSMutableArray in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSMutableArray_$_NSArrayToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinMutableDictionary in libapp.a(combined.o)
"_OBJC_CLASS_$_NSMutableSet", referenced from:
_OBJC_CLASS_$_KotlinMutableSet in libapp.a(combined.o)
"_OBJC_CLASS_$_NSNull", referenced from:
objc-class-ref in libapp.a(combined.o)
"_OBJC_CLASS_$_NSNumber", referenced from:
_OBJC_CLASS_$_KotlinNumber in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSNumber_$_NSNumberToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSObject", referenced from:
objc-class-ref in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinBase in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinObjectHolder in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinObjCWeakReference in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSObject_$_NSObjectToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSRecursiveLock", referenced from:
objc-class-ref in libapp.a(combined.o)
"_OBJC_CLASS_$_NSSet", referenced from:
_OBJC_CLASS_$_KSetAsNSSet in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSSet_$_NSSetToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSString", referenced from:
objc-class-ref in libapp.a(combined.o)
objc-class-ref in libapp.a(combined.o)
l_OBJC_$_CATEGORY_NSString_$_NSStringToKotlin in libapp.a(combined.o)
"_OBJC_CLASS_$_NSThread", referenced from:
objc-class-ref in libapp.a(combined.o)
"_OBJC_CLASS_$_NSValue", referenced from:
objc-class-ref in libapp.a(combined.o)
"_OBJC_EHTYPE_id", referenced from:
GCC_except_table3493 in libapp.a(combined.o)
GCC_except_table3494 in libapp.a(combined.o)
GCC_except_table3495 in libapp.a(combined.o)
GCC_except_table3496 in libapp.a(combined.o)
GCC_except_table3497 in libapp.a(combined.o)
GCC_except_table3498 in libapp.a(combined.o)
GCC_except_table3499 in libapp.a(combined.o)
...
"_OBJC_METACLASS_$_NSArray", referenced from:
_OBJC_METACLASS_$_KListAsNSArray in libapp.a(combined.o)
"_OBJC_METACLASS_$_NSDictionary", referenced from:
_OBJC_METACLASS_$_KMapAsNSDictionary in libapp.a(combined.o)
"_OBJC_METACLASS_$_NSEnumerator", referenced from:
_OBJC_METACLASS_$_KIteratorAsNSEnumerator in libapp.a(combined.o)
"_OBJC_METACLASS_$_NSMutableArray", referenced from:
_OBJC_METACLASS_$_KMutableListAsNSMutableArray in libapp.a(combined.o)
"_OBJC_METACLASS_$_NSMutableDictionary", referenced from:
_OBJC_METACLASS_$_KotlinMutableDictionary in libapp.a(combined.o)
"_OBJC_METACLASS_$_NSMutableSet", referenced from:
_OBJC_METACLASS_$_KotlinMutableSet in libapp.a(combined.o)
"_OBJC_METACLASS_$_NSNumber", referenced from:
_OBJC_METACLASS_$_KotlinNumber in libapp.a(combined.o)
"_OBJC_METACLASS_$_NSObject", referenced from:
_OBJC_METACLASS_$_KotlinBase in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinObjCWeakReference in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinObjectHolder in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinDouble in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinNumber in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinFloat in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinULong in libapp.a(combined.o)
...
"_OBJC_METACLASS_$_NSSet", referenced from:
_OBJC_METACLASS_$_KSetAsNSSet in libapp.a(combined.o)
"___CFConstantStringClassReference", referenced from:
CFString in libapp.a(combined.o)
CFString in libapp.a(combined.o)
CFString in libapp.a(combined.o)
CFString in libapp.a(combined.o)
CFString in libapp.a(combined.o)
CFString in libapp.a(combined.o)
CFString in libapp.a(combined.o)
...
"___objc_personality_v0", referenced from:
_platform_Foundation_kniBridge96 in libapp.a(combined.o)
_platform_Foundation_kniBridge4688 in libapp.a(combined.o)
_platform_Foundation_kniBridge4718 in libapp.a(combined.o)
_platform_Foundation_kniBridge4720 in libapp.a(combined.o)
_platform_Foundation_kniBridge4774 in libapp.a(combined.o)
_platform_Foundation_kniBridge5710 in libapp.a(combined.o)
_platform_Foundation_kniBridge5712 in libapp.a(combined.o)
...
"__objc_empty_cache", referenced from:
_OBJC_METACLASS_$_KotlinBase in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinBase in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinObjectHolder in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinObjCWeakReference in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinObjCWeakReference in libapp.a(combined.o)
_OBJC_METACLASS_$_KotlinObjectHolder in libapp.a(combined.o)
_OBJC_CLASS_$_KotlinNumber in libapp.a(combined.o)
...
"_class_addMethod", referenced from:
+[KotlinBase initialize] in libapp.a(combined.o)
getOrCreateClass(TypeInfo const*) in libapp.a(combined.o)
___34+[NSObject(NSObjectToKotlin) load]_block_invoke in libapp.a(combined.o)
"_class_addProtocol", referenced from:
+[KotlinBase initialize] in libapp.a(combined.o)
"_class_copyMethodList", referenced from:
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_class_copyProtocolList", referenced from:
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_class_getClassMethod", referenced from:
___34+[NSObject(NSObjectToKotlin) load]_block_invoke in libapp.a(combined.o)
"_class_getName", referenced from:
+[KotlinBase initialize] in libapp.a(combined.o)
+[KotlinBase allocWithZone:] in libapp.a(combined.o)
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_class_getSuperclass", referenced from:
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_curl_easy_cleanup", referenced from:
_libcurl_kniBridge28 in libapp.a(combined.o)
"_curl_easy_init", referenced from:
_libcurl_kniBridge25 in libapp.a(combined.o)
"_curl_easy_perform", referenced from:
_libcurl_kniBridge27 in libapp.a(combined.o)
"_curl_easy_setopt", referenced from:
_libcurl_kniBridge26 in libapp.a(combined.o)
"_curl_easy_strerror", referenced from:
_libcurl_kniBridge22 in libapp.a(combined.o)
"_curl_slist_append", referenced from:
_libcurl_kniBridge15 in libapp.a(combined.o)
"_method_getName", referenced from:
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_method_getTypeEncoding", referenced from:
___34+[NSObject(NSObjectToKotlin) load]_block_invoke in libapp.a(combined.o)
"_objc_allocWithZone", referenced from:
_Kotlin_objc_allocWithZone in libapp.a(combined.o)
"_objc_allocateClassPair", referenced from:
getOrCreateClass(TypeInfo const*) in libapp.a(combined.o)
___34+[NSObject(NSObjectToKotlin) load]_block_invoke in libapp.a(combined.o)
"_objc_autoreleaseReturnValue", referenced from:
_convertFunction0 in libapp.a(combined.o)
_convertFunction1 in libapp.a(combined.o)
_convertFunction2 in libapp.a(combined.o)
_convertFunction3 in libapp.a(combined.o)
_convertFunction4 in libapp.a(combined.o)
_convertFunction5 in libapp.a(combined.o)
_convertFunction6 in libapp.a(combined.o)
...
"_objc_begin_catch", referenced from:
_platform_Foundation_kniBridge96 in libapp.a(combined.o)
_platform_Foundation_kniBridge4688 in libapp.a(combined.o)
_platform_Foundation_kniBridge4718 in libapp.a(combined.o)
_platform_Foundation_kniBridge4720 in libapp.a(combined.o)
_platform_Foundation_kniBridge4774 in libapp.a(combined.o)
_platform_Foundation_kniBridge5710 in libapp.a(combined.o)
_platform_Foundation_kniBridge5712 in libapp.a(combined.o)
...
"_objc_destroyWeak", referenced from:
-[KotlinObjCWeakReference releaseAsAssociatedObject] in libapp.a(combined.o)
"_objc_end_catch", referenced from:
_platform_Foundation_kniBridge96 in libapp.a(combined.o)
_platform_Foundation_kniBridge4688 in libapp.a(combined.o)
_platform_Foundation_kniBridge4718 in libapp.a(combined.o)
_platform_Foundation_kniBridge4720 in libapp.a(combined.o)
_platform_Foundation_kniBridge4774 in libapp.a(combined.o)
_platform_Foundation_kniBridge5710 in libapp.a(combined.o)
_platform_Foundation_kniBridge5712 in libapp.a(combined.o)
...
"_objc_enumerationMutation", referenced from:
_Kotlin_NSDictionaryAsKMap_containsValue in libapp.a(combined.o)
"_objc_getAssociatedObject", referenced from:
+[KotlinBase allocWithZone:] in libapp.a(combined.o)
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_objc_getClass", referenced from:
getOrCreateClass(TypeInfo const*) in libapp.a(combined.o)
___34+[NSObject(NSObjectToKotlin) load]_block_invoke in libapp.a(combined.o)
"_objc_getProtocol", referenced from:
+[KotlinBase initialize] in libapp.a(combined.o)
"_objc_msgSend", referenced from:
l_BooleanToNSNumber in libapp.a(combined.o)
l_ByteToNSNumber in libapp.a(combined.o)
l_ShortToNSNumber in libapp.a(combined.o)
l_IntToNSNumber in libapp.a(combined.o)
l_LongToNSNumber in libapp.a(combined.o)
l_UByteToNSNumber in libapp.a(combined.o)
l_UShortToNSNumber in libapp.a(combined.o)
...
"_objc_msgSendSuper", referenced from:
_kfun:platform.Foundation.objcKniBridge4433$Foundation(kotlin.native.internal.NativePtr;kotlin.native.internal.NativePtr)platform.Foundation.NSFileManager in libapp.a(combined.o)
_kfun:platform.Foundation.objcKniBridge5933$Foundation(kotlin.native.internal.NativePtr;kotlin.native.internal.NativePtr)ValueType in libapp.a(combined.o)
_kfun:platform.Foundation.objcKniBridge4461$Foundation(kotlin.native.internal.NativePtr;kotlin.native.internal.NativePtr;kotlin.String;kotlin.Boolean;kotlin.collections.Map<kotlin.Any?,#STAR>?;kotlinx.cinterop.CPointer<kotlinx.cinterop.ObjCObjectVar<platform.Foundation.NSError?>>?)ValueType in libapp.a(combined.o)
_kfun:platform.Foundation.objcKniBridge4463$Foundation(kotlin.native.internal.NativePtr;kotlin.native.internal.NativePtr;kotlin.String;kotlinx.cinterop.CPointer<kotlinx.cinterop.ObjCObjectVar<platform.Foundation.NSError?>>?)kotlin.collections.List<#STAR>? in libapp.a(combined.o)
_kfun:platform.Foundation.objcKniBridge4517$Foundation(kotlin.native.internal.NativePtr;kotlin.native.internal.NativePtr;kotlin.String)ValueType in libapp.a(combined.o)
_kfun:platform.Foundation.objcKniBridge5435$Foundation(kotlin.native.internal.NativePtr;kotlin.native.internal.NativePtr)platform.Foundation.NSRecursiveLock? in libapp.a(combined.o)
_kfun:platform.Foundation.objcKniBridge5437$Foundation(kotlin.native.internal.NativePtr;kotlin.native.internal.NativePtr) in libapp.a(combined.o)
...
"_objc_msgSendSuper2", referenced from:
+[KotlinBase allocWithZone:] in libapp.a(combined.o)
+[KotlinBase createWrapper:] in libapp.a(combined.o)
-[KotlinBase retain] in libapp.a(combined.o)
-[KotlinBase _tryRetain] in libapp.a(combined.o)
-[KotlinBase release] in libapp.a(combined.o)
-[KotlinBase releaseAsAssociatedObject] in libapp.a(combined.o)
-[KotlinObjectHolder initWithRef:] in libapp.a(combined.o)
...
"_objc_registerClassPair", referenced from:
getOrCreateClass(TypeInfo const*) in libapp.a(combined.o)
___34+[NSObject(NSObjectToKotlin) load]_block_invoke in libapp.a(combined.o)
"_objc_release", referenced from:
-[KotlinObjCWeakReference releaseAsAssociatedObject] in libapp.a(combined.o)
-[KotlinMutableDictionary setObject:forKey:] in libapp.a(combined.o)
-[NSSet(NSSetToKotlin) releaseAsAssociatedObject] in libapp.a(combined.o)
-[NSMutableArray(NSArrayToKotlin) releaseAsAssociatedObject] in libapp.a(combined.o)
-[NSEnumerator(NSEnumeratorAsAssociatedObject) releaseAsAssociatedObject] in libapp.a(combined.o)
-[NSDictionary(NSDictionaryToKotlin) releaseAsAssociatedObject] in libapp.a(combined.o)
-[NSArray(NSArrayToKotlin) releaseAsAssociatedObject] in libapp.a(combined.o)
...
"_objc_retain", referenced from:
-[NSSet(NSSetToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSMutableArray(NSArrayToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSDictionary(NSDictionaryToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSArray(NSArrayToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSObject(NSObjectToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSNumber(NSNumberToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSDecimalNumber(NSDecimalNumberToKotlin) toKotlin:] in libapp.a(combined.o)
...
"_objc_retainAutoreleaseReturnValue", referenced from:
_Kotlin_ObjCExport_refToObjC in libapp.a(combined.o)
_Kotlin_ObjCExport_CreateNSStringFromKString in libapp.a(combined.o)
_platform_darwin_kniBridge220 in libapp.a(combined.o)
"_objc_retainAutoreleasedReturnValue", referenced from:
_Kotlin_NSSetAsKSet_iterator in libapp.a(combined.o)
_Kotlin_NSDictionaryAsKMap_keyIterator in libapp.a(combined.o)
_Kotlin_NSDictionaryAsKMap_valueIterator in libapp.a(combined.o)
_platform_darwin_kniBridge220 in libapp.a(combined.o)
_platform_Foundation_kniBridge96 in libapp.a(combined.o)
_platform_Foundation_kniBridge4688 in libapp.a(combined.o)
_platform_Foundation_kniBridge4718 in libapp.a(combined.o)
...
"_objc_retainBlock", referenced from:
_convertFunction0 in libapp.a(combined.o)
_convertFunction1 in libapp.a(combined.o)
_convertFunction2 in libapp.a(combined.o)
_convertFunction3 in libapp.a(combined.o)
_convertFunction4 in libapp.a(combined.o)
_convertFunction5 in libapp.a(combined.o)
_convertFunction6 in libapp.a(combined.o)
...
"_objc_setAssociatedObject", referenced from:
+[KotlinBase initialize] in libapp.a(combined.o)
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
getOrCreateClass(TypeInfo const*) in libapp.a(combined.o)
"_objc_storeStrong", referenced from:
_platform_darwin_kniBridge210 in libapp.a(combined.o)
___copy_helper_block_.6305 in libapp.a(combined.o)
___destroy_helper_block_.6306 in libapp.a(combined.o)
_platform_Foundation_kniBridge96 in libapp.a(combined.o)
_platform_Foundation_kniBridge4688 in libapp.a(combined.o)
_platform_Foundation_kniBridge4718 in libapp.a(combined.o)
_platform_Foundation_kniBridge4720 in libapp.a(combined.o)
...
"_objc_terminate", referenced from:
l_BooleanToNSNumber in libapp.a(combined.o)
l_ByteToNSNumber in libapp.a(combined.o)
l_ShortToNSNumber in libapp.a(combined.o)
l_IntToNSNumber in libapp.a(combined.o)
l_LongToNSNumber in libapp.a(combined.o)
l_UByteToNSNumber in libapp.a(combined.o)
l_UShortToNSNumber in libapp.a(combined.o)
...
"_object_getClass", referenced from:
+[KotlinBase initialize] in libapp.a(combined.o)
+[KotlinBase allocWithZone:] in libapp.a(combined.o)
-[NSObject(NSObjectToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSNumber(NSNumberToKotlin) toKotlin:] in libapp.a(combined.o)
-[NSDecimalNumber(NSDecimalNumberToKotlin) toKotlin:] in libapp.a(combined.o)
"_protocol_copyProtocolList", referenced from:
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_protocol_getName", referenced from:
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
"_sel_getName", referenced from:
incorrectNumberInitialization(KotlinNumber*, objc_selector*) in libapp.a(combined.o)
incorrectNumberFactory(objc_class*, objc_selector*) in libapp.a(combined.o)
"_sel_registerName", referenced from:
+[KotlinBase initialize] in libapp.a(combined.o)
getOrCreateTypeInfo(objc_class*) in libapp.a(combined.o)
getOrCreateClass(TypeInfo const*) in libapp.a(combined.o)
"_sqlite3_bind_blob", referenced from:
_Android_Database_SQLiteConnection_nativeBindBlob in libapp.a(combined.o)
"_sqlite3_bind_double", referenced from:
_Android_Database_SQLiteConnection_nativeBindDouble in libapp.a(combined.o)
"_sqlite3_bind_int64", referenced from:
_Android_Database_SQLiteConnection_nativeBindLong in libapp.a(combined.o)
"_sqlite3_bind_null", referenced from:
_Android_Database_SQLiteConnection_nativeBindNull in libapp.a(combined.o)
"_sqlite3_bind_parameter_count", referenced from:
_Android_Database_SQLiteConnection_nativeGetParameterCount in libapp.a(combined.o)
"_sqlite3_bind_text16", referenced from:
_Android_Database_SQLiteConnection_nativeBindString in libapp.a(combined.o)
"_sqlite3_busy_timeout", referenced from:
_Android_Database_SQLiteConnection_nativeOpen in libapp.a(combined.o)
"_sqlite3_changes", referenced from:
_Android_Database_SQLiteConnection_nativeExecuteForChangedRowCount in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForLastInsertedRowId in libapp.a(combined.o)
"_sqlite3_clear_bindings", referenced from:
_Android_Database_SQLiteConnection_nativeResetStatementAndClearBindings in libapp.a(combined.o)
"_sqlite3_close", referenced from:
_Android_Database_SQLiteConnection_nativeOpen in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeClose in libapp.a(combined.o)
"_sqlite3_column_blob", referenced from:
android::copyRow(android::CursorWindow*, sqlite3_stmt*, int, int, int) in libapp.a(combined.o)
"_sqlite3_column_bytes", referenced from:
android::copyRow(android::CursorWindow*, sqlite3_stmt*, int, int, int) in libapp.a(combined.o)
"_sqlite3_column_count", referenced from:
_Android_Database_SQLiteConnection_nativeExecuteForString in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeGetColumnCount in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForLong in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForCursorWindow in libapp.a(combined.o)
"_sqlite3_column_double", referenced from:
android::copyRow(android::CursorWindow*, sqlite3_stmt*, int, int, int) in libapp.a(combined.o)
"_sqlite3_column_int64", referenced from:
_Android_Database_SQLiteConnection_nativeExecuteForLong in libapp.a(combined.o)
android::copyRow(android::CursorWindow*, sqlite3_stmt*, int, int, int) in libapp.a(combined.o)
"_sqlite3_column_name16", referenced from:
_Android_Database_SQLiteConnection_nativeGetColumnName in libapp.a(combined.o)
"_sqlite3_column_text", referenced from:
android::copyRow(android::CursorWindow*, sqlite3_stmt*, int, int, int) in libapp.a(combined.o)
"_sqlite3_column_text16", referenced from:
_Android_Database_SQLiteConnection_nativeExecuteForString in libapp.a(combined.o)
"_sqlite3_column_type", referenced from:
android::copyRow(android::CursorWindow*, sqlite3_stmt*, int, int, int) in libapp.a(combined.o)
"_sqlite3_db_config", referenced from:
_Android_Database_SQLiteConnection_nativeOpen in libapp.a(combined.o)
"_sqlite3_db_readonly", referenced from:
_Android_Database_SQLiteConnection_nativeOpen in libapp.a(combined.o)
"_sqlite3_errmsg", referenced from:
android::throw_sqlite3_exception(sqlite3*) in libapp.a(combined.o)
android::throw_sqlite3_exception(sqlite3*, char const*) in libapp.a(combined.o)
"_sqlite3_extended_errcode", referenced from:
android::throw_sqlite3_exception(sqlite3*) in libapp.a(combined.o)
android::throw_sqlite3_exception(sqlite3*, char const*) in libapp.a(combined.o)
"_sqlite3_finalize", referenced from:
_Android_Database_SQLiteConnection_nativeFinalizeStatement in libapp.a(combined.o)
"_sqlite3_last_insert_rowid", referenced from:
_Android_Database_SQLiteConnection_nativeExecuteForLastInsertedRowId in libapp.a(combined.o)
"_sqlite3_open_v2", referenced from:
_Android_Database_SQLiteConnection_nativeOpen in libapp.a(combined.o)
"_sqlite3_prepare16_v2", referenced from:
_Android_Database_SQLiteConnection_nativePrepareStatement in libapp.a(combined.o)
"_sqlite3_profile", referenced from:
_Android_Database_SQLiteConnection_nativeOpen in libapp.a(combined.o)
"_sqlite3_reset", referenced from:
_Android_Database_SQLiteConnection_nativeResetStatementAndClearBindings in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForCursorWindow in libapp.a(combined.o)
"_sqlite3_step", referenced from:
_Android_Database_SQLiteConnection_nativeExecuteForString in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecute in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForChangedRowCount in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForLastInsertedRowId in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForLong in libapp.a(combined.o)
_Android_Database_SQLiteConnection_nativeExecuteForCursorWindow in libapp.a(combined.o)
"_sqlite3_stmt_readonly", referenced from:
_Android_Database_SQLiteConnection_nativeIsReadOnly in libapp.a(combined.o)
"_sqlite3_trace", referenced from:
_Android_Database_SQLiteConnection_nativeOpen in libapp.a(combined.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [example] Error 1
make[1]: *** [CMakeFiles/example.dir/all] Error 2
make: *** [all] Error 2
14:23:10: The process "/usr/local/bin/cmake" exited with code 2.
Error while building/deploying project example (kit: Desktop Qt 5.11.1 clang 64bit)
When executing step "CMake Build"

All 6 comments

Sure, you need to link dependencies on Objective-C runtime and other libraries in your application. For example, use, for example otool -L my.dylib and link into your app along with the static library whatever is listed there.

@olonho I think you might be missunderstanding. The generated shared library (dylib) works correctly when I use it with my cpp program.. but the generated static library (.a) throws the error "symbol(s) not found for architecture x86_64" when linking

Yes, dynamic library has references to libraries it depends on (DT_NEEDED in ELF), while static does not (essentially, it is an archive with index). So you need to provide the same libraries explicitly when linking with the static library.

but I am providing the static library?

This is how I am providing the static library in cmake:

#add_library( myLibrary STATIC IMPORTED )
#set_property( TARGET myLibrary PROPERTY IMPORTED_LOCATION ${KOTLINAPP_DIR}/build/lib/main/debug/libapp.a )
target_link_libraries( exampleProject myLibrary )

Please read how to link with static libraries: https://stackoverflow.com/questions/7841920/how-do-static-libraries-do-linking-to-dependencies. Explaining basic software engineering concepts has nothing to do with Kotlin/Native.

@olonho I realize how static libraries work. I made a super simple project that builds a static library from kotlin then links the library to a c program: here
In the example I also generate a static library from c which links successfully to the example c program. The kotlin generated library does not.

just run ./buildall.sh

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Cortlandd picture Cortlandd  路  4Comments

brettwillis picture brettwillis  路  4Comments

talanov picture talanov  路  3Comments

9468305 picture 9468305  路  3Comments

msink picture msink  路  4Comments