我想寫一個CMakeLists.txt
這樣CMake寫一個Visual Studio 2010(64位)解決方案文件來爲C++代碼example.cxx
構建MATLAB R2011a(64位)的mex函數。如何使用CMake和Visual Studio 2010(64位)構建MATLAB R2011a(64位)mex文件?
- 我不想使用MATLAB的編譯器包裝
mex
但設置了Visual Studio解決方案文件,使之VISUAL C++鏈接相關的MATLAB庫。 example.cxx
除了mex文件所需的MATLAB庫之外沒有其他依賴項。- 的CMake 2.8.7設置正確,使得它使用的Visual Studio 64位發生器2010
的什麼,我現在在做的實質是
find_package(Matlab)
add_library(example STATIC example.cxx)
target_link_libraries(example ${MATLAB_LIBRARIES})
無論是編譯器鏈接器也不會發出任何錯誤。我在名稱example.mexw64
下將輸出example.lib
安裝在MATLAB路徑的目錄中。當我從MATLAB調用example
時,出現錯誤信息
??? Invalid MEX-file
'C:\...\example.mexw64':
C:\...\example.mexw64 is not a valid Win32 application.
歡迎任何建議!
我試過了。現在我得到錯誤:'Mex文件入口點丟失。請檢查MEXFUNCTION(for FORTRAN MEX文件)的mexFunction(用於C MEX文件)或(不區分大小寫) 拼寫的(區分大小寫) 拼寫。 ???無效的MEX文件 'C:\ ... \ example.mexw64': C:\ ... \ example.mexw64不是有效的Win32 應用程序。' – 2012-04-18 22:17:01
當我在Visual Studio中顯式指定入口點時解決方案文件(如何讓CMake以獨立於平臺的方式執行此操作?),我收到以下錯誤消息:無效的MEX文件 'C:\ ... \ example.mexw64':' – 2012-04-18 22:24:49
你的DLL需要導出函數mexFunction。也許它不會被導出或拼寫不正確。 – 2012-04-18 22:55:04