相关疑难解决方法(0)

XCode 4添加了dylib

我正在尝试创建然后将dylib添加到项目中.我使用"Cocoa-Library"模板创建它,并将类型设置为"Dynamic"(不确定它应该是动态的还是静态的......).然后我创建了一个名为Test的简单obj-c类,并在其中编写了一个打印出控制台的方法.

我编译并使用生成的.dylib文件并将其放在另一个项目中.现在每当我尝试使用它时,我都会在运行时收到此消息"

dyld: Library not loaded: /usr/local/lib/TESTLib.dylib
  Referenced from: /Users/***/Library/Developer/Xcode/DerivedData/TestingDYLIB-axmoocnxbwznoyerfogosumqufxc/Build/Products/Debug/TestingDYLIB.app/Contents/MacOS/TestingDYLIB
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我还创建了一个Copy File阶段并将目标设置为"Frameworks".我仍然得到同样的错误.我究竟做错了什么?谢谢.

cocoa objective-c dylib xcode4

17
推荐指数
1
解决办法
2万
查看次数

如何配置cmake链接到预构建的共享库?

我有一个项目,在子目录中包含opencv的预构建版本。例如:

MyProject
* CMakeLists.txt
* src
* third_party
** CMakeLists.txt
** opencv
****包括
**** lib

我想链接到位于third_party目录中的opencv版本。我的问题是,如何通知CMake链接到lib中的预构建dylib文件,并将标头包含在相关的opencv目录中?

cmake_minimum_required(VERSION 2.8.9)
project (myproject)

include_directories(${CMAKE_SOURCE_DIR}/third_party/opencv/include)
link_directories(${CMAKE_SOURCE_DIR}/third_party/opencv/lib)

file(GLOB SOURCES "*.cpp")

add_executable(myproject ${SOURCES})
target_link_libraries(myproject opencv_calib3d opencv_contrib opencv_core opencv_highgui opencv_features2d opencv_highgui opencv_imgproc)
Run Code Online (Sandbox Code Playgroud)

cmake

3
推荐指数
1
解决办法
7622
查看次数

CMAKE没有规则成为内部共享库的目标

我编写了一个cmake文件,该文件构建了两个共享库vector3.c和matrix4.c。matrix4依赖于vector3,如果我运行cmake项目并仅构建vector3共享库,则当我添加matrix4库我收到一个cmake错误。没有规则可以成为目标。

文件夹结构

core_math
 ------CMakeLists.txt
-common/
 ------common_structs.h
-matrix4/
 ------CMakeLists.txt
 ------matrix4/src/matrix4_scalar.c
 ------matrix4/headers/matrix4_scalar.h
-vector3/
-------CMakeLists.txt
-------vector3/src/vector3_scalar.c
-------vector3/headers/vector3_scalar.h
Run Code Online (Sandbox Code Playgroud)

core_math / CMakeLists.txt

PROJECT(core_math)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

ADD_SUBDIRECTORY(vector3_scalar)
ADD_SUBDIRECTORY(matrix4_scalar)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY $(CMAKE_BINARY_DIR)/static_lib)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY $(CMAKE_BINARY_DIR)/shared_lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY $(CMAKE_BINARY_DIR)/bin)

SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
Run Code Online (Sandbox Code Playgroud)

core_math / vector3 / CMakeLists.txt

PROJECT(vector3_scalar)
SET(CMAKE_MACOSX_RPATH 1)

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../common)

SET(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/../common/common_structs.h) 
SET(SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/vector3_scalar.c ${HEADER_FILES})

ADD_LIBRARY(vector3_scalar SHARED ${SRC_FILES})
Run Code Online (Sandbox Code Playgroud)

core_math / matrix4_scalar / CMakeLists.txt

PROJECT(matrix4_scalar)
SET(CMAKE_MACOSX_RPATH 1)

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../common 
    ${CMAKE_CURRENT_SOURCE_DIR}/../vector3_scalar)


SET(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/../common/common_structs.h
    ${CMAKE_CURRENT_SOURCE_DIR}/../vector3_scalar/headers/vector3_scalar.h
    ${CMAKE_CURRENT_SOURCE_DIR}/headers/matrix4_scalar.h)
SET(SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/matrix4_scalar.c ${HEADER_FILES})

ADD_LIBRARY(matrix4_scalar SHARED ${SRC_FILES})

TARGET_LINK_LIBRARIES(matrix4_scalar vector3_scalar)
Run Code Online (Sandbox Code Playgroud)

建立错误

-- Build files have been written to: /Users/blubee/MATH/project/build
Scanning dependencies …
Run Code Online (Sandbox Code Playgroud)

c cmake shared-libraries libraries

0
推荐指数
1
解决办法
7652
查看次数

标签 统计

cmake ×2

c ×1

cocoa ×1

dylib ×1

libraries ×1

objective-c ×1

shared-libraries ×1

xcode4 ×1