Eclipse missing C/C++ build and general from project properties

文章详细介绍了如何在Eclipse中解决找不到C/C++ build和general选项的问题,通过关闭所有项目、添加native支持、修改build命令等步骤来配置opencv4android项目。

Q: I have eclipse running and am trying to get opencv4android on it (http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html)

Instructions say to go to project -> properties and their will be a C/C++ build to change the location of ndk-build. However, I do not see C/C++ build or general.

When I start eclipse and go to about:

Android Developer Tools

Build: v22.0.1-685705

This product includes Eclipse Platform, JDT, CDT, EMF, GEF and WTP, all of which are Copyright (c) Eclipse contributors and others. Visit http://eclipse.org/

Android Developer Tools are Copyright (c) The Android Open Source Project. Visithttp://developer.android.com

A:

I had a similar problem, it looks like the "native support" part was not set up correctly in the project, or at least was not compatible with the eclipse / CDT / android sdk combination I have.

You can maybe try what I did (with eclipse 4.2.2, CDT 8.1.2, opencv4android 2.6.4, android sdk 4.3):

1) close all projects but the Opencv Library one (project explorer, select all projects but the first one, right click, "close project")

2) right click on the first project. Select "Android Tools", then "Add native support ...".

3) select a unique library name without spaces (default names don't work).

4) Go to project properties, the "c/c++ build" section should now be there. Change the build command to ${NDKROOT}/ndk-build, assuming NDKROOT was correctly set up before-hand.

5) right click again on that project. Select "Properties > Android", make sure an Android version is selected in the "Project Build Target" list.

6) build everything and make sure everything works at this point.

Then you can re-open one sample project (eg 15 puzzle), and repeat the operations above if needed.

Hopefully you should be able to build that sample project and launch it on your phone.


http://stackoverflow.com/questions/16953548/eclipse-missing-c-c-build-and-general-from-project-properties

<think>我们已经在之前的回答中配置了NDKBuilder,但用户现在明确询问如何配置Eclipse的C/C++Build设置(即使用Eclipse内置的CDT工具链)来编译Cocos2d-x3.10项目。需要注意的是,Cocos2d-x项目通常使用ndk-build(通过Android.mk)进行编译,而不是直接使用Eclipse的C/C++Build。然而,我们仍然可以配置Eclipse的C/C++Build来调用ndk-build。步骤如下:1.**打开项目属性**:右键项目->选择“Properties”。2.**进入C/C++Build设置**:在属性窗口中,选择“C/C++Build”。3.**禁用默认的Build**:在“BuilderSettings”标签页中,取消勾选“Usedefaultbuildcommand”。然后,在“Buildcommand”中输入:`${NDK_ROOT}/ndk-build`(注意:替换${NDK_ROOT}为你的NDK实际路径,或者使用环境变量,但Eclipse可能无法直接解析环境变量,所以建议写绝对路径,或者使用Eclipse的变量如${env_var:NDK_ROOT})。4.**设置工作目录**:在“BuildLocation”中,点击“Workspace...”按钮,选择项目下的`jni`目录。5.**设置Behavior**:在“Behavior”标签页中,可以设置“Build(incrementalbuild)”和“Clean”命令。通常,我们只需要设置Build命令为`ndk-build`(同上),Clean命令可以设置为`ndk-buildclean`。6.**配置环境变量**:在“Environment”标签页中,添加或修改环境变量:-添加`NDK_MODULE_PATH`,值为Cocos2d-x引擎的路径,例如:`D:/cocos2dx-3.10;D:/cocos2dx-3.10/cocos;D:/cocos2dx-3.10/external`(注意使用正确的路径分隔符,Windows下用分号,Linux/Mac用冒号)[^1][^3]。-也可以在这里设置其他环境变量,如`NDK_ROOT`(如果还没有在系统环境变量中设置的话)。7.**保存并测试**:保存设置,然后尝试清理和构建项目。但是,请注意以下几点:-这种方法可能会遇到问题,因为Eclipse的C/C++Build最初设计用于管理标准的C/C++项目,而ndk-build是一个外部构建工具。-另一种更常见的方法(如前所述)是使用“ProgramBuilder”(外部工具)来调用ndk-build,而不是使用C/C++Build。如果用户坚持使用C/C++Build配置,那么按照上述步骤操作。但根据引用[3]中的经验,路径分隔符的问题需要注意,在Windows中应使用正斜杠(/)或双反斜杠(\\)[^3]。另外,在配置过程中,确保NDK的路径没有空格,并且环境变量设置正确。如果构建失败,检查Eclipse控制台的输出,根据错误信息进行排查。常见问题包括NDK_MODULE_PATH设置不正确,或者ndk-build命令找不到。现在,针对用户的问题,总结配置步骤:###配置步骤:1.**打开项目属性**:右键项目->Properties。2.**选择C/C++Build**:在左侧选择“C/C++Build”。3.**配置Builder**:-取消“Usedefaultbuildcommand”-Buildcommand:填写ndk-build的完整路径(如`D:/android-ndk-r10e/ndk-build.cmd`)或者如果已经设置了环境变量NDK_ROOT,可以使用`${NDK_ROOT}/ndk-build.cmd`(注意:在Windows下是ndk-build.cmd,在其他系统是ndk-build)。-将“Builddirectory”设置为`${workspace_loc:/YourProjectName/jni}`(替换YourProjectName为实际项目名)。4.**设置环境变量**:-在“Environment”标签页,添加NDK_MODULE_PATH,值为Cocos2d-x引擎根目录和必要的子目录,用分号分隔(Windows)或冒号(Linux/Mac)。例如:`D:/cocos2dx-3.10;D:/cocos2dx-3.10/cocos;D:/cocos2dx-3.10/external;D:/cocos2dx-3.10/cocos/scripting`(如果需要Lua支持)[^1]。5.**保存并构建**:点击ApplyandClose,然后尝试构建项目。###注意事项:-如果ndk-build命令在控制台可以运行,但在Eclipse中不行,可能是路径问题。尝试使用绝对路径。-路径分隔符:在Windows中,路径使用正斜杠(/)或双反斜杠(\\\\)避免转义问题[^3]。-环境变量NDK_MODULE_PATH中的路径必须与项目中的Android.mk里`$(callimport-add-path,...)`的路径匹配。最后,由于Cocos2d-x项目通常包含Java和C++代码,我们通常使用Android项目构建方式(即通过AndroidBuilder和NDKBuilder结合),而不是完全依赖C/C++Build。因此,如果上述配置不工作,建议回到之前配置外部ProgramBuilder的方法。如果用户需要更详细的步骤,可以结合引用中的经验,特别是注意路径分隔符的问题。下面生成相关问题:</think>### 在 Eclipse 中配置 C/C++ Build 编译 Cocos2d-x 3.10 项目 #### 一、配置 C/C++ Build 工具链 1. **打开项目属性** - 右键项目 → `Properties > C/C++ Build` - 取消勾选 **"Use default build command"** - 在 **Build command** 输入框中输入: ```bash ${ANDROID_NDK}/ndk-build.cmd -j4 # -j4 启用4线程编译加速 ``` > 替换 `${ANDROID_NDK}` 为你的实际 NDK 路径(如 `D:/android-ndk-r10e`) 2. **设置工作目录** - 在 **Build location** 区域点击 **"Workspace..."** - 选择项目的 `jni` 目录(如 `YourProject/jni`) 3. **配置环境变量** - 切换到 **Environment** 标签页 - 点击 **"Add..."** 添加: ```bash Name: NDK_MODULE_PATH Value: ${COCOS2DX_ROOT};${COCOS2DX_ROOT}/cocos;${COCOS2DX_ROOT}/external ``` > `${COCOS2DX_ROOT}` 替换为你的 Cocos2d-x 3.10 根路径(如 `D:/cocos2d-x-3.10`)[^1][^3] - 添加 Lua 支持(如需): ```bash Value: ...;${COCOS2DX_ROOT}/cocos/scripting ``` #### 二、配置构建参数 1. **优化构建命令** ```bash ${ANDROID_NDK}/ndk-build.cmd NDK_DEBUG=1 V=1 -j8 ``` - `NDK_DEBUG=1`:生成调试符号 - `V=1`:显示详细编译日志 - `-j8`:启用8线程编译(根据 CPU 核心数调整) 2. **设置刷新规则** - 切换到 **Refresh Policy** 标签页 - 勾选 **"Refresh resources upon completion"** - 选择 **"The project containing the selected resource"** - 点击 **"Specify Resources..."** 添加 `libs` 和 `obj` 目录 #### 三、路径配置关键点 1. **路径格式要求** - Windows 使用正斜杠 `/` 或双反斜杠 `\\`(避免单反斜杠 `\` 转义问题)[^3] - 示例: ```bash D:/cocos2d-x-3.10 # 正确 D:\\cocos2d-x-3.10 # 正确 D:\cocos2d-x-3.10 # 错误(可能失败) ``` 2. **Android.mk 同步配置** 在 `jni/Android.mk` 中添加: ```makefile $(call import-add-path, $(COCOS2DX_ROOT)) $(call import-add-path, $(COCOS2DX_ROOT)/cocos) $(call import-add-path, $(COCOS2DX_ROOT)/external) $(call import-module, cocos) ``` #### 四、验证配置 1. **手动触发构建** - 右键项目 → `Build Project` - 观察 **Console** 输出: ``` [ndk-build] Compile++ thumb: game_shared <= HelloWorldScene.cpp [ndk-build] SharedLibrary : libgame.so ``` 2. **常见错误处理** - **"ndk-build not found"**:检查 `ANDROID_NDK` 路径是否正确 - **"Cannot find module"**:确认 `NDK_MODULE_PATH` 包含所有引擎路径[^1] - **Lua 绑定失败**:添加 `scripting` 目录到环境变量[^1] > **重要提示**:Cocos2d-x 3.10 必须使用 `gnustl_static`,在 `jni/Application.mk` 中添加: > ```makefile > APP_STL := gnustl_static > APP_CPPFLAGS := -frtti -std=c++11 -fsigned-char > ``` #### 五、输出重定向到控制台 在 **Build command** 末尾添加: ```bash ${ANDROID_NDK}/ndk-build.cmd 2>&1 | tee build.log ``` - `2>&1`:将错误输出重定向到标准输出 - `tee build.log`:同时在控制台显示并保存到文件[^3] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值